MFC:CStdioFile

点评:对于一般文件的读取,建议还是用CStdioFile来进行行的读与写操作,这样非常方便的.

[问题提出]
一数据文件一行一条记录,我用file.ReadString()一次读一行,并对读取的数据做一些处理;
请问:

while(文件还没到结尾) {  
  file.ReadString();  
  ...  
  } 

文件还没到结尾如何判断?如果,到了指定位置不读了,过一会儿再读又如何做?
[解决方法]
方法1:
while()中不用另加判断条件了,因为CStdioFile::ReadString()本身就是判断标志,若没有了(文件到头)返回NULL,因此下列语句即可实现。

while(file.ReadString(s))  
{  
} 

方法2:
当然也可以使用下列方法判断有没有读到文件结束:

 while(file.GetPosition() != file.GetLength())
 {
 }

[程序实现]
假设你已有了名为ts.txt的文件在你的工程目录下:

{  
    CStdioFile file;    
    CString sss;  
    char ccc[100];  
    DWORD dwCurrentPosition=0;  
    int ReadLineNum=0;  
    file.Open("ts.txt",CFile::modeRead);  
    while(file.ReadString(sss))  
    {  
        ReadLineNum++;  
        if(ReadLineNum>1)//读两次就不读了.  
        break;            
    }  
    dwCurrentPosition=file.GetPosition();//记录上次的结果(读到哪了)  


    file.Seek(dwCurrentPosition,0);//接着上回读  
    while(file.ReadString(sss))  
    {  
        strcpy(ccc,sss);  
        AfxMessageBox(ccc);  
    }  
}  

猜你喜欢

转载自blog.csdn.net/zy1049677338/article/details/80620016
MFC
今日推荐