MFC做的一个统计文本文件行数的对话框程序

duang_in_duang 2015-07-10 06:19:59
void CMyDlg::OnOpen()
{
// TODO: Add your control notification handler code here
CFileDialog FileDialog(TRUE);//创建一个打开对话框,
if(FileDialog.DoModal()==IDOK) //只有在用户在对话框上点击了【确定】才统计行数

{
int nLineCount=0,nCharCount=0;
CString strFileName=FileDialog.GetPathName();
char byBuffer;
try
{
CFile MyFile(strFileName,CFile::modeRead);
while (MyFile.Read(&byBuffer,1)==1);
{
nCharCount++;
if(byBuffer==0x0a)
nLineCount++;
}
if(byBuffer!=0x0a)nLineCount++;
CString strOutput;
strOutput.Format("文件%s一共:%d行,%d字",strFileName,nLineCount,nCharCount);
MessageBox(strOutput,"统计结果");
MyFile.Close();
}
catch(CFileException*)
{
MessageBox("无打开文件!");
}
}

}


//每次运行都是显示只有“1行”!!实在发现不了哪里有错,求解。
...全文
140 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
银点 2015-07-13
  • 打赏
  • 举报
回复

CStdioFile file;
CString strLine,strtemp,result;
if(!file.Open( "c:\\Data.txt ",CFile::modeRead))return;
int row = 0;//行数计数器
while(file.ReadString(strLine))
{
    char *str = strLine.GetBufferSetLength(strLine.GetLength());
    char *p;
    if(strLine!="")
    {
        for (p=strtok(str,"\r\n");p!=NULL;p=strtok(NULL,"\r\n"))
        {
            strtemp = p;
            result += strtemp;
        }
        m_sRtxt = _T(result);
        row++;
    }
 
}
 
file.Close();

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧