一个文本文件,我想知道它的内容总共有多少行。怎么做?我想了一个方法,就是判断这个文件里总共有多少个回车符。
但是怎样判断一个字符在这个文件里总共有多少个?CString里有现成的函数吗?除了这个方法,还有别的更好的方法没有?

解决方案 »

  1.   

    这个是不是更简单?
            CStdioFile f1;
       f1.Open( "d:\\1.txt", CFile::modeRead );
       f1.SeekToEnd();
       DWORD p1 = 0,p2 = f1.GetPosition();
       int iLine = 0;
                         CString str;
       f1.SeekToBegin();
       while(p1<p2)
       {
       f1.ReadString(str);
                                   iLine ++;
       p1 = f1.GetPosition();
       }
       f1.Close();
      

  2.   

    一般情况下读取文件内容无需知道行数,你摆出你读取文件行数的理由,或许我们有其他方法,如果你的出发点错误那么没有讨论的必要,可以在不知道行数的情况下用feof(fp)来判断结尾标志(我猜测你的意图)。
      

  3.   

    To cadinfo(无语清风):
      感谢你的解答。我的意图是这样的∶
      我要把TXT文件中的内容逐行写入到DB中,如下示意∶
      while(file.ReadString(readRecord))
      {
          SaveToDB(readRecord);
      }
     
    考虑到这个过程会花费很长时间,所以想做个进度条,来显示完成进度。于是想先知道TXT文件总共多少行,这样好平均分割进度条。
       有其他更好的方法吗?