最近用到文件的读取,所以看了下相关的内容。文件的读写对话框CFileDialog,读取文件的内容有类CStdioFile.ReadString(&str);然后再对str进行处理。我用到的是需要对文件的内容读取,然后分离。就可以用到CString里面的Find(),left(),Right()函数,最后对分离的字符串进行转化就可以得到想要的内容了
在日常编程中我们经常需要读写TXT格式的文本文件,本人通过上网查找资料,结合自己的编程经验,给出一个简单的处理方法,写出来供大家参考,写的不对的地方希望大家批评指正。
我主要是利用了CStdioFile类的直接读取字符串的特点,大大简化程序的开发。要调用CStdioFile类需要在程序中加载afx.h库文件。
一。 用VC6.0生成基于对话框的程序ReadTxT工程。
二。添加两个按钮“Open File”和 “Save File”。一个CLisiBox列表框。
三。为两个按钮添加消息相应函数,程序如下:
void CReadTXTTestDlg::OnOpenFile()
{
CFileDialog FileDlg(true, _T("txt"), NULL, OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,
"文本文件 (*.TXT)|*.TXT|All Files(*.*)|*.*||");
if( FileDlg.DoModal() == IDOK )
{
CString fileName; fileName = FileDlg.GetFileName();
CStdioFile file;
file.Open(fileName,CFile::modeRead,0);
CListBox *pList = (CListBox *)GetDlgItem(IDC_EDIT);
pList->ResetContent();
CString str;
while(file.ReadString(str))
{
pList->AddString(str);
}
file.Close();
}
}
void CReadTXTTestDlg::OnSaveFile()
{
CFileDialog FileDlg(false, _T("txt"), NULL, OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,
"文本文件(*.TXT)|*.TXT|All Files(*.*)|*.*||");
if( FileDlg.DoModal() == IDOK )
{
CString fileName;
fileName = FileDlg.GetFileName();
CStdioFile file;
file.Open(fileName,CFile::modeCreate | CFile::modeWrite);
CListBox *pList = (CListBox *)GetDlgItem(IDC_EDIT);
CString str;
int size = pList->GetCount();
for(int i=0; i<size;i++)
{
int n = pList->GetTextLen(i);
pList->GetText(i, str.GetBuffer(n));
file.WriteString(str);
file.WriteString("/n");
}
file.Close();
}
}
四。编译执行.
点击“OpenFile”按钮可实现TXT文件的加载。
点击“SaveFile”按钮可实现TXT文件的存储加载。
此程序在WINXP平台,VC6.0编译系统调试通过。
创建某一指定位置名称的文件夹
CFileFind ff;
if (!ff.FindFile("E://Test Works"))
{
CreateDirectory("E://Test Works",NULL);
}
将某一指定文件存放在某一文件夹中(将wkqqkq.txt写入到E://Test Works文件夹下)
CFile file;
CString filename;
filename="wkqqkq.txt";
CString name="E://Test Works//"+filename;
file.Open(name,CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate);