1.我们要做的一个demo是创建文本文件并进行读写数据的操作
Cfile类是mfc中文件操作的积累,他派生自CObject,直接提供二进制文件的输入输出服务。本例将介绍如何使用CFile类进行将编辑框中的文本储存好txt文件中,并可以进行文件的读取操作。
写入文件的代码如下:
void CMFCApplication1Dlg::OnBnClickedButton1()
{
// TODO: 写入文件的代码
UpdateData(TRUE);
CString strFilter, fileName, strText;
strFilter = "Text Files(*.txt)|*.txt|";
CFileDialog dlg(FALSE, NULL, NULL, OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_FILEMUSTEXIST, strFilter);
if (dlg.DoModal() == IDOK){
fileName = dlg.GetPathName();
CFile saveFile(fileName, CFile::modeCreate | CFile::modeWrite);
saveFile.Write(m_strWrite, m_strWrite.GetLength());
saveFile.Close();
}
}
读取文件的代码如下:
void CMFCApplication1Dlg::OnBnClickedButton2()
{
// TODO: 读取文件的代码
CString strFilter, fileName, strText;
strFilter = "Text Files(*.txt)|*.txt|";
CFileDialog dlg(TRUE, NULL, NULL, OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_FILEMUSTEXIST, strFilter);
if (dlg.DoModal() == IDOK){
fileName = dlg.GetPathName();
CFile openfile(fileName, CFile::modeRead);
int lenght = openfile.GetLength();
char *strTEXT;
strTEXT = new char[lenght];
openfile.Read(strTEXT, lenght);
openfile.Close();
m_strRead = strTEXT;
delete[]strTEXT;
UpdateData(FALSE);
}
}
注意:在使用CFile类的时候,要特别小心文件存取模式耳朵设置。如本例中的,保存文件,文件是可写的,如果文件存在,会将原来的文件清空。
而在打开文件的时候,不能具有mocecreate标识,否则读取文件会被清空。
2. 在文件的指定位置存放和读取数据
先给出实例的demo
保存按钮的代码如下:
void CMFCApplication2Dlg::OnBnClickedButton2()
{
// TODO: 保存
CString strFilter, fileName, strText;
strFilter = "List Files(*.list)|*.list|";
CFileDialog dlg(FALSE, NULL, NULL, OFN_EXPLORER | OFN_HIDEREADONLY |
OFN_ENABLESIZING | OFN_FILEMUSTEXIST, strFilter);
if (dlg.DoModal() == IDOK){
fileName = dlg.GetPathName();
CFile savefile(fileName, CFile::modeCreate | CFile::modeWrite);
for (int i = 0; i < m_ctllist.GetCount(); i++){
m_ctllist.GetText(i, strText);
savefile.Seek(40 * i, CFile::begin);
savefile.Write(strText, 40);
}
savefile.Close();
}
}
载入代码:
void CMFCApplication2Dlg::OnBnClickedButton3()
{
// TODO: 载入
CString strFilter, fileName;
char * strText;
strFilter = "List Files(*.list)|*.list|";
strText = new char[4