第6章数据及文档.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章数据和文档 6.1CString类 6.1CString类 6.1CString类 6.1CString类 6.1CString类 6.1CString类 6.1CString类 6.1CString类 6.2使用简单数组集合类 6.2使用简单数组集合类 6.2使用简单数组集合类 6.2使用简单数组集合类 6.3使用CFile类 6.3使用CFile类 6.3使用CFile类 6.3使用CFile类 6.3使用CFile类 6.3使用CFile类 6.3使用CFile类 6.3使用CFile类 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.4文档序列化 6.5综合应用 6.5综合应用 6.5综合应用 6.5综合应用 6.5综合应用 6.5综合应用 6.5综合应用 6.5综合应用 6.5综合应用 6.4.3 CArchive类和序列化操作 从上述的单文档序列化过程可以看出:打开和保存文档时,系统都会自动调用Serialize函数。事实上,MFC AppWizard在创建文档应用程序框架时已在文档类中重载了Serialize函数,通过在该函数中添加代码可达到实现数据序列化的目的。例如,在Ex_SDI单文档应用程序的文档类中有这样的默认代码: void CEx_SDIDoc::Serialize(CArchive ar) { if (ar.IsStoring()) // 当文档数据需要存盘时 { // TODO: add storing code here } else // 当文档数据需要读取时 { // TODO: add loading code here } } 代码中,Serialize函数的参数ar是一个CArchive类引用变量。通过判断ar.IsStoring的结果是“真”还是“假”就可决定向文档写或读数据。 CArchive(归档)类提供对文件数据进行缓存,它同时还保存一个内部标记,用来标识文档是存入(写盘)还是载入(读盘)。每次只能有一个活动的存档与ar相连。通过CArchive类可以简化文件操作,它提供“”和“”运算符,用于向文件写入简单的数据类型以及从文件中读取它们,表6.6列出了CArchive所支持的的常用数据类型。 表6.3 ar中可以使用和运算符的数据类型 无符号整型 unsigned 字符型 char 带符号短整型 short 带符号整型 int 双精度浮点 double 单精度浮点 float 32位无符号整型 DWORD 32位带符号整型 LONG 16位无符号整型 WORD 8位无符号整型 BYTE 描 述 类 型 描 述 类 型 除了“”和“”运算符外,CArchive类还提供成员函数ReadString和WriteString用来从一个文件对象中读写一行文本,它们的原型如下: Bool ReadString(CString rString ); LPTSTR ReadString( LPTSTR lpsz, UINT nMax ); void WriteString( LPCTSTR lpsz ); 其中,lpsz用来指定读或写的文本内容,nMax用来指定可以读出的最大字符个数。需要说明的是,当向一个文件写一行字符串时,字符 ‘\0’和‘\n’都不会写到文件中,在使用时要特别注意。 下面举一个简单的示例来说明Serialize函数和CArchive类的文档序列化操作方法。 [例Ex_SDIArchive] 一个简单的文档序列化示例 (1)创建一个默认的单文档应用程序Ex_SDIArchive。 (2)打开String Table资源,将文档模板字串资源IDR_MAINFRAME内容修改为: 文档序列化操作\n\n\n自定义文件(*.my)\n.my\nExSDIArchive.Document\nEx_SDI Document (3)为CEx_SDIArchiveDoc类添加下列成员变量:

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档