网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
对象的持久性和文件I/O
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
bsp;  CFile file(襎ESTFILE.TXT*, CFile::modeRead);

    // Read data from the file.

    char s[81];

    int bytesRead = file.Read(s, 80);

    s[bytesRead] = 0;

    CString message = s;

当带着CFile::modeRead状态标记打开文件时,这种方式打开的文件仅用于读操作。其后,程序创建一个字符缓冲区并调用文件对象的Read( )成员函数来向缓冲区读入数据。Read( )函数的两个参量为缓冲区的地址和读入字节的个数。此函数返回实际读入的字节个数,在该例中它几乎总是小于80。使用所读取的字节个数,程序可在字符数据的末尾加0来创建一个标准的C类型字符串,该字符串可用于设置CString变量。

上面的代码片段用了个比较难的文件名。要想让你的用户提供文件名,在联机帮助中查看MFC类CFileDialog,你可以很容易增加这个功能。要给程序添加一些特色是非常简单的。

创建自己的CArchive对象

尽管可以使用CFile对象处理文件,但可以更进一步并且创建自己的CArchive对象,就像在Serialize( )函数中使用的CArchive对象一样,读者完全可以使用自己创建的CArchive对象。这使得读者可以利用为其他对象编写的Serialize( )函数,向它们传递对自己的档案对象的引用。

为创建一个档案文件,需创建一个CFile对象并将其传递给CArchive的构造函数。例如,如果想将对象通过档案文件写入到一文件中去,可创建如下的档案文件:

CFile file("FILENAME.EXT", CFile::modeWrite);

CArchive ar(&file, CArchive::store);

在创建档案文件对象后,可以如MFC所提供的档案文件对象一样使用该档案文件。由于采用CArchive::store标记进行档案文件对象的创建,对IsStoring( )的调用返回TRUE,而且把对象转储到档案文件的代码开始执行。当完成档案文件对象后,可按如下方式关闭档案文件:

ar.Close( );

file.Close( );

在读者已经完成它们后,如果对象超出应用范围,可以安全地忽略对Close( )的调用,这是因为CArchive和CFile已经在析构函数中调用了Close( )。

理解注册

在Windows编程的早期,应用程序在初始化文件(.ini文件)中保存设置和选项。使用巨大的WIN.INI文件或无数的私有INI文件的日子已经过去了—当一个应用程序希望存储私有信息时,它使用集中的系统“注册”。而且,尽管“注册”很容易使得进程间共享信息,但对于程序员而言,则使情况更加令人迷惑。下面,将揭开“注册”的神秘面纱和学习如何在你的应用程序中控制它。

注册是如何设置的

不同于可以用任何文本编辑器进行编辑的纯文本文件的INI文件,“注册(Registry)”包含的二进制和AscII信息只能用Registry Editor进行编辑,或者是用为管理Registry专门创建的特殊API函数调用来进行编辑。如果读者曾经使用过Registry Editor浏览系统的注册,就会知道它包含了大量的组织成树形结构的信息。首次运行Registry Editor时的注册,可以在Windows文件夹中找到称为REGEDIT.EXE的Registry Editor,或者可以在Start菜单的Run命令中键入regedit然后单击OK。

在左边的窗口中列出了Registry的预定义键。在键旁的加号表示可以打开此键来查看更多与之相关的信息。键可以有子键,子键可以有自己的子键。一个键或子键可以有也可以没有与之相关联的一个值。如果在层次中探寻得比较深入的活,可以看见在右边窗口中的一列数值。要想亲眼看到这些值,可以从HKEY_CURRENT_USER到Control Panel到Appearance到Schemes进行浏览,可以看到在系统上所安装的桌面系统。

预定义的键

为了知道在Registry中所存储的的东西在哪里,就需要知道预定义键和它们所代表的意思。

* HKEY_CLASSES_ROOT

* HKEY_CURRENT_USER

* H
  • 上一篇资讯: 深入MDI客户窗口编程
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号