如何从文本文件中读取一行,然后再读取一行,直到文件尾?
请写出程序流程!

解决方案 »

  1. 用BDE读取txt文件需要两个文件,一个是后缀是.txt的文本数据文件,一个是后缀.sch的格式文件,他们的文件名应相同。.sch 的文件是用来让bde来识别txt文件的数据格式。如果没有.sch文件,bde无法正确读取txt文本数据文件。所以,首先应知道你的txt文件一行的数据是以什么来分隔的,再来设置sch文件。
     
    取得文件名
    {     CString  
          FilePathName;
          CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框
          if(dlg.DoModal()==IDOK)
          FilePathName=dlg.GetPathName();
    }    
    相关信息:CFileDialog 用于取文件名的几个成员函数:
    假如选择的文件是C:\WINDOWS\TEST.EXE
    则:
       (1)GetPathName();取文件名全称,包括完整路径。取回C:\WINDOWS\TEST.EXE
       (2)GetFileTitle();取文件全名:TEST.EXE
       (3)GetFileName();取回TEST
       (4)GetFileExt();取扩展名EXE
    打开文件
    CFile file("C:\HELLO.TXT",CFile::modeRead);///只读方式打开
    ///CFile::modeRead可改为 CFile::modeWrite(只写),CFile::modeReadWrite(读写),CFile::modeCreate(新建)
    例子:
    {
        CFile file;
        file.Open("C:\HELLO.TXT",CFile::modeCreate|Cfile::modeWrite);
        ...
        ... 
    }
    移动文件指针
        file.Seek(100,CFile::begin);///从文件头开始往下移动100字节
        file.Seek(-50,CFile::end);///从文件末尾往上移动50字节
        file.Seek(-30,CFile::current);///从当前位置往上移动30字节
        file.SeekToBegin();///移到文件头
        file.SeekToEnd();///移到文件尾读写文件
       读文件:
          char buffer[1000];
          file.Read(buffer,1000);
       写文件:
          CString string("这个世界只有偏执狂才能成功");
          file.Write(string,8);
    关闭文件   file.Close();
      

类似问题 »