VC6.0编的“文件读写”的详细操作步骤(两种方式MFC和基于对话框)_第1页
VC6.0编的“文件读写”的详细操作步骤(两种方式MFC和基于对话框)_第2页
VC6.0编的“文件读写”的详细操作步骤(两种方式MFC和基于对话框)_第3页
VC6.0编的“文件读写”的详细操作步骤(两种方式MFC和基于对话框)_第4页
VC6.0编的“文件读写”的详细操作步骤(两种方式MFC和基于对话框)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VC6.0编的“文件读写”的两种方式(MFC和基于对话框)软件实验三:基于对话框的MFC程序实现文件读写操作实例一:操作步骤:1、 新建“MFC APPWIZARD(EXE)”,选择文件路径,输入文件名,选择应用程序类型为“基本对话框”,按上图添加各控件2、 按下表修改各控件的ID号,添加成员函数和消息函数控件标题ID号成员变量变量类型消息函数编辑框(写入的文本)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)双击下压按钮“写入文件”,编写“写入文件”的消息处理函数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);/将数据写入文件int length=m_WriteString.GetLength();/获取文件长度 file.Write(LPCTSTR)m_WriteString,length);/获取有关文件的信息CStringAfxMessageBox("已保存到文件:"+strFileName+"!");/保存结束提示strFilePath=file.GetFilePath();/获得文件的路径file.Close();/关闭文件4、 查看文件路径双

6、击下压按钮“查看文件路径”,编写“查看文件路径”的消息处理函数void CMyDlg:OnButtonFilepath() /查看文件路径/ TODO: Add your control notification handler code herem_FilePath=strFilePath;UpdateData(false);5、 读入文件1) 定义判断文件类型是否正确的函数(粗体字为此处添加的代码)class CMyDlg : public CDialog/ Constructionpublic:/定义变量 CString strFileName;/文件名 CString strFileP

7、ath;/文件路径BOOL IsTextFile(CString& rFile);/判断文件类型是否正确CMyDlg(CWnd* pParent = NULL);/ standard constructor2) 编写IsTextFile函数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();/转换成大写return(strList.Find(str)?TRUE:FALSE;3) 在“基于对话框的文件读写Dlg.cpp”文件开头添加头文件#include "fstream.h"/添加的头文件4) 单击下压按钮“读入文件”,编写下压按钮“读入文件”的消息函数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+"文件读入完毕");/保存结束提示f1.close();/关闭文件流6、 运行程序1) 在写入文件的编辑框中输入内容,单击“写入文件”按

11、钮,并可选择路径保存该文件。2) 单击“查看文件路径”,可查看该文件所要路径。3) 单击“从文件读入”按钮,可选择一个文件并打开,并把文件内容显示在从文件读入的文本编辑框中。 实例二:(老师的例子)操作步骤:1、 新建“MFC APPWIZARD(EXE)”,选择文件路径,输入文件名,选择应用程序类型为“基本对话框”,按上图添加各控件2、 修改各控件的ID号,为各控件添加成员变量和消息函数控件标题ID号成员变量变量类型消息函数编辑框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”的消息函数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”的消息函数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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论