- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
剖析VC中的文件操作
剖析VC中的文件操作一、剖析VC中的文件操作各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。 1.文件的查找? 当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。? CString strFileTitle;? CFileFind finder;? BOOL bWorking = finder.FindFile(C:\\windows\\sysbkup\\*.cab);? while(bWorking)? {? bWorking=finder.FindNextFile();? strFileTitle=finder.GetFileTitle();? }? 2.文件的打开/保存对话框? 让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。MFC的类CFileDialog用于实现这种功能。使用CFileDialog声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保存对话框。? 在构造CFileDialog对象时,如果在参数中指定了OFN_ALLOWMULTISELECT风格,则在此对话框中可以进行多选操作。此时要重点注意为此CFileDialog对象的m_ofn.lpstrFile分配一块内存,用于存储多选操作所返回的所有文件路径名,如果不进行分配或分配的内存过小就会导致操作失败。下面这段程序演示了文件打开对话框的使用方法。? CFileDialog mFileDlg(TRUE,NULL,NULL,? OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,? All Files (*.*)|*.*||,AfxGetMainWnd());? CString str( ,10000);? mFileDlg.m_ofn.lpstrFile=str.GetBuffer(10000);? str.ReleaseBuffer();? POSITION mPos=mFileDlg.GetStartPosition();? CString pathName( ,128);? CFileStatus status;? while(mPos!=NULL)? {? pathName=mFileDlg.GetNextPathName(mPos);? CFile::GetStatus( pathName, status );? }? 3.文件的读写? 文件的读写非常重要,下面将重点进行介绍。文件读写的最普通的方法是直接使用CFile进行,如文件的读写可以使用下面的方法:?? //对文件进行读操作?? char sRead[2];?? CFile mFile(_T(user.txt),CFile::modeRead);?? if(mFile.GetLength()2)?? return;?? mFile.Read(sRead,2);?? mFile.Close();?? //对文件进行写操作?? CFile mFile(_T(user.txt ), CFile::modeWrite|CFile::modeCreate);?? mFile.Write(sRead,2);?? mFile.Flush();?? mFile.Close();?? 虽然这种方法最为基本,但是它的使用繁琐,而且功能非常简单。我向你推荐的是使用CArchive,它的使用方法简单且功能十分强大。首先还是用CFile声明一个对象,然后用这个对象的指针做参数声明一个CArchive对象,你就可以非常方便地存储各种复杂的数据类型了。它的使用方法见下例。?? //对文件进行写操作?? CString strTemp;?? CFile mFile;?? mFile.Open(d:\\dd\\try.TRY,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);?? CArchive ar(mFile,CArchive::store);?? ar ar.Close(
您可能关注的文档
最近下载
- 常见的临床药师培训学习汇报.ppt
- 言语行为和翻译.ppt VIP
- 北师大版小学数学六年级上册第五单元《数据处理》作业设计.docx
- Hive数据仓库应用教程高职PPT完整全套教学课件.pptx VIP
- 医院培训课件:《传染病防治法》.pptx
- 幼小衔接的拼音试卷十套打印版.pdf VIP
- 幼儿园大班科学《有趣的符号》 课件.pptx VIP
- 规范《DBT29-222-2014-天津市建设工程施工安全资料管理规程》.pdf VIP
- GB_T 22890.1-2024 皮革 柔软皮革防水性能的测定 第1部分:反复线压缩法(透度计法).pdf VIP
- DB34_T 4324-2022水泥土搅拌桩地基加固施工技术规程.pdf VIP
文档评论(0)