VC读写TXT

    技术2022-05-20  40

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

           }

    }


    最新回复(0)