zoukankan      html  css  js  c++  java
  • wxWidgets文件操作(二)wxTextFile

    书上说有情人最终能成婵娟...不好意思,错了。

    书上说wxTextFile也是一个很简易的类,允许以行为单位操作文件。该类也能轻松地区分不同平台下文件的行终止符,对于“非原生”的行终止符,它也不会对其做任何有害的动作--事实上,它也能在不同行终止符间进行转换,比如从Dos到Unix。

    不过需要小小注意的是,该类对(超)大文件的操作并没有做性能优化处理,原因是它将整个文件一次完整读入到内存。所以你不应该用该类操作(超)大文件(超过1M)。另一方面,象配置文件及程序源代码这类小文件你大可放心地使用该类。

    关于读写操作的具体用法,请见以下代码片断。需要留意的地方代码注释里都有说明,比如调用Write()方法前数据并未写入物理文件。

    最后一句,使用wxTextFile需包含头文件<wx/textfile.h>

    1 #include <wx/textfile.h>
    2
    3 void textfiletest()
    4 {
    5 //源文件:
    6 wxTextFile file(wxT("helperapp.cpp"));
    7
    8 //创建新文件,下面将要把源文件copy给该新文件
    9 wxTextFile dummyfile(wxT("dummy.cpp"));
    10 dummyfile.Create();
    11
    12 file.Open();
    13
    14 //显示源文件总共有多少行:
    15 cout<<"Number of lines:"<<file.GetLineCount()<<endl;
    16
    17 //打印第一行:
    18 cout<<"First Line:"<<file.GetFirstLine().c_str()<<endl;
    19
    20 //打印最后一行:
    21 cout<<"Last Line:"<<file.GetLastLine().c_str()<<endl;
    22
    23 cout<<"-------------------------------------------------------------"<<endl;
    24
    25 //完整打印源文件于控制台,同一时间copy 给新创建的dummyfile.cpp文件:
    26 wxString code;
    27 for(code=file.GetFirstLine();!file.Eof();code=file.GetNextLine())
    28 {
    29 //将源文件一行一行读取打印于控制台窗口
    30 cout<<code.c_str()<<endl;;
    31
    32 //将源文件一行一行地copy给目标文件dummyfile.cpp
    33 dummyfile.AddLine(code);
    34 }
    35 cout<<"--------------------------------------------------------------"<<endl;
    36
    37 //上面调用AddLine()方法并未将数据写入物理文件,所以一定要调用
    38 //Write( wxTextFileType typeNew = wxTextFileType_None,
    39 //const wxMBConv & conv = wxConvAuto() )方法,该方法调用成功时返回true.
    40 if(dummyfile.Write(/*wxTextFileType_None,wxConvAuto(wxFONTENCODING_CP936 )*/))
    41 cout<<"Done!New file created in the disk."<<endl;
    42 dummyfile.Close();
    43 file.Close();
    44
    45 }
  • 相关阅读:
    linux下ping命令出现ping: sendto: Network is unreachable
    tiny4412--linux驱动学习(2)
    tiny4412--linux驱动学习(1)
    linux-kernel-4.4 移植 (2)解决上部遗留DMA-PL330的问题
    linux-kernel-4.4 移植 (1)启动
    Busybox构建根文件系统和制作Ramdisk
    tiny4412 --Uboot移植(6) SD卡驱动,启动内核
    select响应事件
    项目总结1
    一个盒子只是显示两行
  • 原文地址:https://www.cnblogs.com/godspeedsam/p/1986302.html
Copyright © 2011-2022 走看看