最近的项目需要读取某特定格式的文件,并实时的将文本文件的内容更新到编辑框中去,现在功能已经实现,特将源码发上来,希望能帮助一些人,由于水平不高,可能代码的优化度和质量不是很高,见谅!
//打开一个已存在的记事本文件
CFileDialog dlg(TRUE,NULL,NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,
L"Data Documents(*.jsp)|*.jsp|",AfxGetMainWnd());
CString strTem;
if(dlg.DoModal()==IDOK)
{
strTem= dlg.GetPathName();//获取文件名,你可以用这个参数来对文件进行操作,比如fopen()
MessageBox(strTem);//用MessageBox来弹出你所选中的文件名。
}
CFile file;
CString FileName=strTem;
char buf[16000]; //读16K内存
memset(buf,0,16000);//初始化内存,防止读出字符末尾出现乱码
if(!file.Open(FileName,CFile::modeRead))
{
MessageBox(L"没有选中文件!");
return;
}
file.Read(buf,sizeof(buf));
file.Close();
//AfxMessageBox(buf);
m_strRecordCon=buf;//给文本框赋值CString m_data
//设置一个字节数的限制条件,此处为400字节
//如果文件字节数大于400,则弹出提醒对话框
if (m_strRecordCon.GetLength()>400)
{
AfxMessageBox(L"该文件字节数大于400,请另选择文件!");
}
UpdateData(FALSE); //在记事本内数据刷新到记录编辑框显示
}