MFC文件IO和串行化】的更多相关文章

一. MFC中CFile对象实现了磁盘文档的读写,但是大部分MFC应用程序的IO服务都使用CArchive对象来完成.不管CFile和Archive输入输出的都是二进制数据,非文本数据. int a = 0; CFile file(TEXT("log.txt"), CFile::modeCreate | CFile::modeReadWrite | CFile::modeNoTruncate); file.Write(&a, sizeof(a)); CArchive ar(&a…
function n_serialize(data) if type(data)=="number" then io.write(data,"\n") elseif type(data)=="string" then io.write(string.format("%q\n",data)) elseif type(data)=="table" then io.write("{\n");…
在面向对象的程序设计中,一般都是用二进制文件来保存文档资料.在VC++中控制和使用文件流的方法很多,MFC程序设计中常用的有两种方法:用CFile对象存储和读取文件:利用串行化存取文件.其中用CFile对象直接存储文档,存在着以下两个问题:一是过程繁琐,例如绘图系统中常存在大量的数据对象(直线对象.矩形对象等):另一个问题是功能受限,VC++为了程序集成的需要,设汁成了复合文档,可以把各种外来对象(如OLE对象的嵌入和链接)的内容存储到外部文件中并从外部文件中读取内容更新构造对象,而程序的设计者…
文件输入和输出(I/O)服务是所有操作系统的主要工作.Microsoft Windows提供了各种API函数用来读.写和操作磁盘文件.MFC将这些桉树和CFile类融合在面对对象的模型里.其中CFile类允许把文件当做对象,并用CFile成员函数,如Read和Write,对它们进行操作.CFile具有MFC编程人员实现第几文件I/O所需要的所有工具. 尽管用CFile对象实现磁盘文档的读写并没有错,但大部分MFC应用程序不会这么做,而是用CArchive对象.通过MFC实现巧妙的运算符重载,大部…
1.枚举所有文件夹(递归) void EnumerateFolders () { WIN32_FIND_DATA fd; HANDLE hFind = ::FindFirstFile (_T ("*.*"), &fd); if (hFind != INVALID_HANDLE_VALUE) { do { if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { CString name = fd.cFileName; i…
一.MFC允许对象在程序运行的整个过程中持久化的串行化机制 (1)串行化是指向持久化存储媒介(如一个磁盘文件)读或写对象的过程. (2)串行化用于在程序运行过程时或之后修复结构化数据(如C++类或结构)的状态. (3)MFC支持CObject类中的串行化,所以,所有继承于CObject的类可以利用CObject的串行化协议. (4)串行化的基本思想: a.对象必须能将其当前状态写入到持久化存储媒介中,通常用其成员变量实现. b.对象可以通过读或反序列化从存储媒介中重新构造对象的状态. c.串行化…
一.MFC允许对象在程序运行的整个过程中持久化的串行化机制(1)串行化是指向持久化存储媒介(如一个磁盘文件)读或写对象的过程.(2)串行化用于在程序运行过程时或之后修复结构化数据(如C++类或结构)的状态.(3)MFC支持CObject类中的串行化,所以,所有继承于CObject的类可以利用CObject的串行化协议.(4)串行化的基本思想:          a.对象必须能将其当前状态写入到持久化存储媒介中,通常用其成员变量实现.          b.对象可以通过读或反序列化从存储媒介中重新…
永久保存(串行化)是MFC的重要内容,可以用一句简明直白的话来形容其重要性:弄懂它以后,你就越来越像个程序员了! 如果我们的程序不需要永久保存,那几乎可以肯定是一个小玩儿.那怕我们的记事本.画图等小程序,也需要保存才有真正的意义. 对于MFC的很多地方我不甚满意,总觉得它喜欢拿一组低能而神秘的宏来故弄玄虚,但对于它的连续存储(serialize)机制,却是我十分钟爱的地方.在此,可让大家感受到面向对象的幸福. MFC的连续存储(serialize)机制俗称串行化.“在你的程序中尽管有着各种各样的…
1.什么是串行化 对象的寿命通常随着生成该对象的程序的终止而终止.有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复.我们把对象的这种能记录自己的状态以便将来再生的能力.叫作对象的持续性(persistence).对象通过写出描述自己状态的数值来记录自己,这个过程叫对象的串行化(Serialization).串行化的主要任务是写出对象实例变量的数值.如果变量是另一对象的引用,则引用的对象也要串行化.这个过程是递归的,串行化可能要涉及一个复杂树结构的单行化,包括原有对象.对象的对象.对象的…
QDataStream类提供了二进制数据到QIODevice的串行化. #include 所 有成员函数的列表. 公有成员 QDataStream () QDataStream ( QIODevice * d ) QDataStream ( QByteArray a, int mode ) virtual ~QDataStream () QIODevice * device () const void setDevice ( QIODevice * d ) void unsetDevice ()…