利用CStdioFile类的直接读取字符串的特点,大大简化程序的开发。
要调用CStdioFile类需要在程序中加载afx.h库文件。
一。 用VC6.0生成基于对话框的程序ReadTxT工程。
二。添加两个按钮“Open File”和 “Save File”。一个CLisiBox列表框。getsavefilename
三。为两个按钮添加消息相应函数,程序如下:
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编译系统调试通过。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。