CStdioFile类

来源:互联网 发布:淘宝宝贝突然搜索不到 编辑:程序博客网 时间:2024/04/30 03:27

利用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();

       }

}

原创粉丝点击