📄 untitled-12.txt
字号:
接和CFile对象发生相互作用。实际上,它们借助于CArchive对象完成读写工作,而
CArehye对象又转而利用*nie函数实现文件1/O。*们重载<<和>>运算符。这两个运算
符和CArchive一起简化了串行化和并行化过程。串行化和并行化的根本目的在于把应用程
序持久性数据保存到磁盘上或再从磁盘读回需要的数据。
串行化是MFC编程中的一个重要概念,因为在文档/视图应用程序中打开并保存文档
是MFC的基本功能。同将在第9章中学到的一样,在使用文档/视图应用程序时,如果在应
用程序的File菜单中选中open或Save,MFC就会打开文件进行读或写,并传递给应用程序
一个指向CArchive对象的引用。接着,应用程序又将持久性数据串行化为档案,或把档案并
行化为数据,这样就把一个完整的文档保存在磁盘上或重新把文档读取出来了。如果文档
的持久性数据完全由基本数据类型或可串行化对象组成,那么通常只需几行代码就可以实
现串行化。与此呈鲜明对照的是:如果应用程序向用户询问文件名,打开文件并自己完成
文件1/O,则需要成千上万行语句。
6.2.1串行化基础
假定一个CFile对象,名为file,代表一个打开的文件,该文件具有写访问权,并且您想
在文件上写一对整数,名为a和b。为了实现这个要求,一种方法是对每一个整数都调用
CFile:: Write:
f。ie.Wr。ie(&a,s。zeof(a));
file.Write(&b, st。eof(b》;
另一种方法是创建一个CArehye对象,并把它与该nne对象关联起来,然后运用<<运算符
把整数串行化到档案中:
CArchlve ar(&f。ie, CArch。ye:: store);
<<<<<<<b;
CArchive对象也可以用来读取数据。假定file再次代表一个打开的文件,并且该文件具
有读访问权,下面的小代码段将CArchive对象挂接到文件上,并从文件中读取整数,或将整
数“并行化’:
CArchive ar(&file, CArchive::load);
>>>>>>>b;
MFC允许多种基本数据类型以这种方式串行化,包括BYTE、WORD、LONG、DWORD。
float、double、Int、unslgned Int、short和 char。
MFC还重载<<和>>运算符,以便串行化或并行化CString和其他某些由MFC类表示
的非基本数据类型。如果string是一个CString对象,ar是一个CArchive对象,可以按如下方
式把字符串写人档案:
ar<< st<lflg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -