vc++的编程不容易,有时候想实现打开一个文本文件这么简单的功能都挺麻烦的(相对DELPHI),在网上找到一个例子,经修正后列出来。 void CMainFrame::OnFileOpen() {//显示文件打开对话框CFileDialog dlg(TRUE, "SQL", "*.txt",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"Text Files(*.txt)|*.txt|SQL Files(*.sql)|*.sql|All Files(*.*)|*.*||"); if ( dlg.DoModal()!=IDOK ) return;//获取文件的绝对路径CString sFileName=dlg.GetPathName();//打开文件CStdioFile out;out.Open(sFileName, CFile::modeRead);CString sSql="",s;//读取文件do{out.ReadString(s);sSql=sSql+s+(char)10;}while (out.GetPosition()!=out.GetLength());out.Close(); AfxMessageBox(sSql); } 另有一个方法如下: CStdioFile myFile; CString ReadFileString; if(myFile.Open("C:\\Readme.txt", Cfile::modeRead) == TRUE) { while(myFile.ReadString(ReadFileString) != FALSE) { //... 处理代码 } } 另外还有一个保存的例子,不过还没经过亲自测试: /************************************************** 写文本文件**************************************************///显示文件保存对话框CFileDialog dlg(FALSE, "SQL", "*.txt",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Text Files(*.txt)|*.txt|SQL Files(*.sql)|*.sql|All Files(*.*)|*.*||"); if ( dlg.DoModal()!=IDOK ) return;//获取文件的绝对路径CString sFileName=dlg.GetPathName();CStdioFile out;//打开文件out.Open(sFileName, CFile::modeCreate | CFile::modeWrite);//保存文件CString sSql="文本文件内容";out.WriteString(sSql);out.Close();

评论