- 2
- 0
- 约5.93万字
- 约 38页
- 2018-02-05 发布于浙江
- 举报
下载
第13章 文件、串行化和数据库
本章的例子涉及从简单二进制文件到访问第三方的数据库管理系统等方面的内容。文件
串行化的概念是M F C特有的,串行化允许你组织如何保存类对象到磁盘上,以便以较小的代
价检索甚至升级它们。串行化从 a r c h i v e文件中保存或调出, a r c h i v e文件其实是一个二进制文
件。
例63 访问二进制文件 讨论用M F C类访问和操作一个简单的二进制文件。
例64 访问标准I / O文件 讨论用M F C类访问文本文件。
例65 访问内存文件 讨论创建和操作内存中的二进制文件。尤其是,内存文件可以使
你利用文件系统的方法来访问堆内存的单元。
例66 在数据类中实现串行化 在数据类中加入串行化功能。在本例中不实际串行化任
何东西—这些留到下五个例子来做。
例67 串行化S D I或M D I文档 利用M F C 的内置功能自动串行化数据类。
例68 按要求串行化 按要求串行化一个或多个数据类,而不仅仅是保存和装入一个文
档。
例69 透明地更新串行化的文档 讨论怎样如何通过简单地修改新数据类,以转化旧数
据,使新数据类仍然能使用旧的串行化文档。
例70 串行化多态类 串行化一组数据类,这些类的唯一共同点是它们派生于同一个基
类。
例71 串行化数据集 讨论M F C集类内置的串行化功能。
例72 访问O D B C数据库 讨论怎样使用M F C类访问一个满足O D B C协议的数据库。
例73 访问D A O数据库 讨论怎样使用M F C类访问一个满足D A O协议的数据库。
13.1 例63 访问二进制文件
目标
在一个平面磁盘文件中维护二进制数据。
策略
利用M F C 的C F i l e类,该类封装了Windows API 中处理二进制文件的函数。
步骤
1. 检查文件是否存在
要判断某个文件是否已在磁盘上存在,可以使用静态 C F i l e 函数GetStatus( ) 。
CFileStatus status;
if (!CFile::GetStatus(sFile,status))
{
226 第三部分 内部处理实例
下载
msg.Format(%s does not exist,sFile);
A f x M e s s a g e B o x ( m s g ) ;
}
2. 创建一个二进制文件
为了创建一个可写的二进制文件,首先创建一个 C F i l e类对象,然后利用 Open( )成员函数
打开并创建一个文件对象。
CFile file;
CString msg;
CString sFile(Wzd.tmp);
if (!file.Open(sFile, CFile::modeCreate|CFile::modeWr i t e ) )
{
msg.Format(Failed to create %s.,sFile);
A f x M e s s a g e B o x ( m s g ) ;
}
3. 使用二进制文件
1) 写二进制数据到文件中。
f i l e . Write (buff e r, sizeof (buff e r ) ) ;
2) 关闭文件,销毁文件对象。
file. Close( );
3) 打开一个二进制文件进行读操作。
if (!file.Open(sFile, CFile::modeRead))
{
msg.Format(Failed to open %s.,sFile);
A f x
原创力文档

文档评论(0)