VC6.0編的“文件讀寫”的詳細(xì)操作步驟(兩種方式MFC和基于對話框)_第1頁
VC6.0編的“文件讀寫”的詳細(xì)操作步驟(兩種方式MFC和基于對話框)_第2頁
VC6.0編的“文件讀寫”的詳細(xì)操作步驟(兩種方式MFC和基于對話框)_第3頁
VC6.0編的“文件讀寫”的詳細(xì)操作步驟(兩種方式MFC和基于對話框)_第4頁
VC6.0編的“文件讀寫”的詳細(xì)操作步驟(兩種方式MFC和基于對話框)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、VC6.0編的“文件讀寫”的兩種方式(MFC和基于對話框)軟件實驗三:基于對話框的MFC程序?qū)崿F(xiàn)文件讀寫操作實例一:操作步驟:1、 新建“MFC APPWIZARD(EXE)”,選擇文件路徑,輸入文件名,選擇應(yīng)用程序類型為“基本對話框”,按上圖添加各控件2、 按下表修改各控件的ID號,添加成員函數(shù)和消息函數(shù)控件標(biāo)題ID號成員變量變量類型消息函數(shù)編輯框(寫入的文本)IDC_WRITEm_WriteStringCString編輯框(文件路徑)IDC_FILEPATHm_FilePathCString編輯框(從文件中讀入的文本)IDC_READm_strReadCstring下壓按鈕寫入到文件IDC

2、_BUTTON_WRITEOnButtonWrite下壓按鈕查看文件路徑IDC_BUTTON_FILEPATHOnButtonFilepath下壓按鈕從文件讀入的文本IDC_BUTTON_READOnButtonRead給控件添加成員變量的方法為:按ctrl+w,進入MFC ClassWizard,選中要添加成員變量的控件的ID號,選擇mumber variables面板,單擊add variable按鈕,添加成員變量,并選擇變量類型。3、 寫入文件1)在“基于對話框的文件讀寫Dlg.h”文件中定義變量(粗體字為此處添加的代碼)class CMyDlg : public CDialog/ Co

3、nstructionpublic:/定義變量 CString strFileName;/文件名 CString strFilePath;/文件路徑BOOL IsTextFile(CString& rFile);/判斷文件類型是否正確CMyDlg(CWnd* pParent = NULL);/ standard constructor2)雙擊下壓按鈕“寫入文件”,編寫“寫入文件”的消息處理函數(shù)void CMyDlg:OnButtonWrite() /單擊“寫入到文件”按鈕/ TODO: Add your control notification handler code hereUpda

4、teData(true);CFile file;CFileDialog filedlg(0,/1-文件打開,0-文件另存為".txt|*.*",NULL,OFN_OVERWRITEPROMPT,"文本文件(*.txt)|*.txt|All Files(*.*)|*.*|",NULL);if(filedlg.DoModal()=IDOK)strFileName=filedlg.GetFileName();/獲得文件名if(strFileName="")AfxMessageBox("請輸入文件名");return;fi

5、le.Open(strFileName,CFile:modeCreate|CFile:modeWrite);/將數(shù)據(jù)寫入文件int length=m_WriteString.GetLength();/獲取文件長度 file.Write(LPCTSTR)m_WriteString,length);/獲取有關(guān)文件的信息CStringAfxMessageBox("已保存到文件:"+strFileName+"!");/保存結(jié)束提示strFilePath=file.GetFilePath();/獲得文件的路徑file.Close();/關(guān)閉文件4、 查看文件路徑雙

6、擊下壓按鈕“查看文件路徑”,編寫“查看文件路徑”的消息處理函數(shù)void CMyDlg:OnButtonFilepath() /查看文件路徑/ TODO: Add your control notification handler code herem_FilePath=strFilePath;UpdateData(false);5、 讀入文件1) 定義判斷文件類型是否正確的函數(shù)(粗體字為此處添加的代碼)class CMyDlg : public CDialog/ Constructionpublic:/定義變量 CString strFileName;/文件名 CString strFileP

7、ath;/文件路徑BOOL IsTextFile(CString& rFile);/判斷文件類型是否正確CMyDlg(CWnd* pParent = NULL);/ standard constructor2) 編寫IsTextFile函數(shù)BOOL CMyDlg:IsTextFile(CString &rFile)/判斷文件類型是否正確CStringList strList;CString str(rFile);strList.AddHead(".TXT");strList.AddHead(".SYS");strList.AddHead(

8、".BAT");strList.AddHead(".DAT");str=str.Right(4);/文件名的右邊四位字符str.MakeUpper();/轉(zhuǎn)換成大寫return(strList.Find(str)?TRUE:FALSE;3) 在“基于對話框的文件讀寫Dlg.cpp”文件開頭添加頭文件#include "fstream.h"/添加的頭文件4) 單擊下壓按鈕“讀入文件”,編寫下壓按鈕“讀入文件”的消息函數(shù)void CMyDlg:OnButtonRead() / TODO: Add your control notifica

9、tion handler code herefstream f1;/定義文件流對象char s200;CFileDialog filedlg(1,/1-文件打開,0-文件另存為".txt|*.*",NULL,OFN_OVERWRITEPROMPT,"文本文件(*.txt)|*.txt|All Files(*.*)|*.*|",NULL); if(filedlg.DoModal()=IDOK)UpdateData(true);strFileName=filedlg.GetFileName();/獲得文件名if(!IsTextFile(strFileName

10、)/判斷文件類型是否正確AfxMessageBox("文件類型不正確");return;f1.open(strFileName,ios:in|ios:nocreate);while(!f1.eof()f1.getline(s,255);m_strRead=m_strRead+"rn"+s;/添加文件中的文本到編輯框UpdateData(false);AfxMessageBox(strFileName+"文件讀入完畢");/保存結(jié)束提示f1.close();/關(guān)閉文件流6、 運行程序1) 在寫入文件的編輯框中輸入內(nèi)容,單擊“寫入文件”按

11、鈕,并可選擇路徑保存該文件。2) 單擊“查看文件路徑”,可查看該文件所要路徑。3) 單擊“從文件讀入”按鈕,可選擇一個文件并打開,并把文件內(nèi)容顯示在從文件讀入的文本編輯框中。 實例二:(老師的例子)操作步驟:1、 新建“MFC APPWIZARD(EXE)”,選擇文件路徑,輸入文件名,選擇應(yīng)用程序類型為“基本對話框”,按上圖添加各控件2、 修改各控件的ID號,為各控件添加成員變量和消息函數(shù)控件標(biāo)題ID號成員變量變量類型消息函數(shù)編輯框IDC_EDIT_FILEDATActrFileData按鈕ReadIDC_BTN_READ_FILEOnBtnReadFile()按鈕WriteIDC_BTN_W

12、RITE_FILEOnBtnWriteFile()給控件添加成員變量的方法為:按ctrl+w,進入MFC ClassWizard,選中要添加成員變量的控件的ID號,選擇mumber variables面板,單擊add variable按鈕,添加成員變量,并選擇變量類型。3、雙擊按鈕“Read”,添加“Read”的消息函數(shù)void CMFCDlg:OnBtnReadFile() /讀文件/ TODO: Add your control notification handler code hereCFileDialog Filedlg( TRUE, "All file", &q

13、uot;*.*", OFN_HIDEREADONLY, "All File (*.*)");Filedlg.m_ofn.lpstrTitle = "打開文件"CString m_strFileName;CString m_strFileExm;if( Filedlg.DoModal() != IDOK )return;elsem_strFileName = Filedlg.GetPathName(); /被打開文件名 m_strFileExm = Filedlg.GetFileExt(); /被打開文件擴展名CFile cFile;CFileE

14、xception e;if ( cFile.Open( m_strFileName, CFile:modeReadWrite, &e ) )/ If open file successfulunsigned long lSize = cFile.GetLength ();char *pBuf = new charlSize+1;if ( !pBuf ) / Out of memoryreturn ;else / Alloc memory successcFile.ReadHuge ( pBuf, lSize ); *( pBuf + lSize ) = '0' ;m_c

15、trFileData.SetWindowText( pBuf );if ( pBuf ) / Release memory delete pBuf;cFile.Close ();/ Close file manually/ End of if ( cFile.Opne.)else TCHAR szCause255; CString strFormatted; e.GetErrorMessage( szCause, 255 ); strFormatted = _T("The data file could not be read because of this error: "

16、;); strFormatted += szCause; AfxMessageBox( strFormatted );return ;4、雙擊按鈕“Write”,添加“Write”的消息函數(shù)void CMFCDlg:OnBtnWriteFile() /寫文件/ TODO: Add your control notification handler code hereCFileDialog Filedlg( FALSE, "All file", "*.*", OFN_HIDEREADONLY, "All File (*.*)");Fil

17、edlg.m_ofn.lpstrTitle = "寫文件"CString m_strFileName;CString m_strFileExm;CString m_strFileData;CFile cFile;CFileException e; unsigned long lSize;if( Filedlg.DoModal() != IDOK )return;elsem_strFileName = Filedlg.GetPathName(); /被打開文件名 m_strFileExm = Filedlg.GetFileExt(); /被打開文件擴展名if ( cFile.

18、Open( m_strFileName, CFile:modeCreate | CFile:modeWrite, &e ) )/ If open file successfulm_ctrFileData.GetWindowText( m_strFileData );lSize = m_strFileData.GetLength();char *pBuf = new charlSize+1;if ( !pBuf ) / Out of memorycFile.Close ();return ;else / Alloc memory successstrcpy( pBuf, (char *)(LPCSTR)m_strFileData ); *( pBuf + lSize ) = '0' ;cFile.WriteHuge( pBuf,lSize );if ( pBuf ) / Release memory delete pBuf;cFile.Close ();/ Close file manually/ End of if ( cFile.Opne.)else TCHAR szCau

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論