第8章 保存和恢复工作——文件的存取.ppt_第1页
第8章 保存和恢复工作——文件的存取.ppt_第2页
第8章 保存和恢复工作——文件的存取.ppt_第3页
第8章 保存和恢复工作——文件的存取.ppt_第4页
第8章 保存和恢复工作——文件的存取.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1 VisualC 实用教程 河北经贸大学信息技术学院 第8章保存和恢复工作 文件的存取 2 教学目标 掌握自定义类的串行化方法和过程 熟悉CFile类的使用 3 教学内容 8 1文档串行化8 2串行化实例8 3CFile类8 4使用CFile类实现学生信息管理 4 8 1文档串行化 用户处理的数据往往需要存盘作永久备份 将文档类中的成员变量的值以文件形式存储在磁盘中 或者将文件中的数据读取到相应的成员变量 从而恢复应用程序中的对象 这个过程称为文档的串行化 串行化分为两个部分当应用程序数据以文件形式存储在磁盘中时 叫做串行化 当从文件中恢复应用程序的状态时 则叫做反串行化 5 8 1 1CArchive CFile类与Serialize函数 VisualC 应用程序中的串行化是通过Archive类来实现的 CArchive类不能离开它所依附的CFile类对象而孤立存在 CArchive类用于VisualC 应用程序中文档和数据对象的Serialize函数中 6 8 1 2使对象可串行化 要使自己定义的类对象能够被保存或被恢复 必须做三件事 自己定义的类必须直接或间接从CObject类公有派生 在类中加入两个宏 DECLARE SERIAL和IMPLEMENT SERIAL 向类中添加一个Serialize虚函数 7 8 2串行化实例 例8 1 创建一个单文档应用程序 利用文档的串行化功能实现对学生基本信息的管理 运行效果见图8 2 8 8 2 l创建应用程序外壳 利用AppWizard创建一个单文档应用程序 取名为Ex8 1 在第四步中 确保指定应用程序将创建和读取的文件的扩展名 用fdb作为文件的扩展名 在AppWizard的第六步 指定CFormView作为视图类的基类 这将允许使用对话框编辑器进行应用程序的界面设计 9 8 2 2设计应用程序界面 在创建了一个以CFormView类作为视图类的基类的SDI或MDI应用程序后 必须设计应用程序视图 即设计对话框窗口 窗口布局如图8 3所示 其中的控件及其属性见表8 l 将表8 2中的变量关联到指定的控件 10 8 2 3创建可串行化的类 创建新类CPerson 基类为CObject CPerson类的定义见教材281页 将类串行化 1 添加Serialize函数 2 添加DECLARE SERIAL宏在CPerson类的头文件 Person h 中加入DECLARE SERIAL CPerson 3 添加IMPLEMENT SERIAL宏在CPerson类的源代码文件 Person cpp 中的构造函数定义之前 加入IMPLEMENT SERIAL CPerson CObject 1 11 8 2 4在文档类中建立支持 按表8 3添加两个变量 以支持CPerson对象的记录集 将两个变量的访问权限都指定为私有 添加新的记录取得当前位置在记录集中定位 1 取得当前记录的函数 2 取得数组中第一条记录的函数 3 取得数组中下一条记录的函数 4 取得数组中上一条记录的函数 5 取得数组中最后一条记录的函数清除打开一个新文档 12 8 2 5为视图类增加定位和编辑支持 l 显示当前记录2 在记录集中定位3 保存编辑和更改4 显示新的记录集5 编译运行程序 13 8 3CFile类 在MFC面向对象的编程方式下 有关文件的输入和输出都是由CFile类完成的 CFile是以二进制方式读取和写入文件的类 是MFC中其他所有文件类的基类 它封装了Win32API用来处理文件I O的那部分函数 14 8 3 1CFile类的成员函数 构造和关闭函数CFile CFile inthFile CFile LPCTSTRlpszFileName UINTnOpenFlags virtualvoidClose 输入 输出函数virtualUINTRead void lpBuf UINTnCount DWORDReadHuge void lpBuffer DWORDdwCount virtualvoidWrite constvoid lpBuf UINTnCount VoiWriteHuge constvoid lpBuf DWORDdwCount 15 位置操作函数virtualLONGSeek LONGlOff UINTnFrom voidSeekToBegin DWORDSeekToEnd 状态函数virtualDWORDGetPosition const BOOLGetStatus CFileStatus 16 静态成员函数staticvoidPASCALRename LPCTSTRlpszOldName LPCTSTRlpszNewName staticvoidPASCALRemove LPCTSTRlpszFileName 17 8 3 2CFile类的主要操作 1 打开文件2 创建文件3 关闭文件4 读写文件 18 8 4使用CFile类实现学生信息管理 例8 2 使用CFile类来实现学生信息数据的管理 我们首先定义一个结构体类型 用来存放学生的信息 然后在对话框中实现文件的建立 读文件 写文件等操作 19 8 4 l设计应用程序窗口 创建一个基于对话框的应用程序 为应用程序取名为FileUse 修改对话框的窗口标题为 使用CFile类实现学生信息管理 窗口布局如图8 4所示 各控件属性设置参见表8 5 20 8 4 2定义学生数据结构 为了保存学生的数据信息 必须定义相应的数据结构 可以将学生的数据信息定义为一个结构体类型 也可以将其定义为一个类 在本示例程序中 我们将学生的数据信息定义为一个结构体类型 21 8 4 3实现各项功能 1 初始化List控件2 为类添加数据成员和支持函数3 实现 添加数据 功能4 实现 写入文件 功能5 实现 打开文件 功能6 实现 修改数据 功能 22 8 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论