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

{

   CMultiStringDoc* pDoc = GetDocument();

   CTime now = CTime::GetCurrentTime();

   CString changetime = now.Format(褻hanged at %B %d %H:%M:%S*);

   pDoc->m_messages.SetMessage(1, CString(襍tring 1 *) + changetime);

   pDoc->m_messages.SetMessage(2, CString(襍tring 2 *) + changetime);

   pDoc->m_messages.SetMessage(3, CString(襍tring 3 *) + changetime);

   pDoc->SetModifiedFlag();

   Invalidate();

}

剩下的工作就是编写文档类的Serialize( )函数,这个函数将m_message数据对象存储到磁盘中。如程序清单8所示:

程序清单8   串行化数据对象

void CMultiStringDoc::Serialize(CArchive& ar)

{

    m_messages.Serialize(ar);

        if (ar.IsStoring())

        {

        }

        else

        {

        }

}

读者可以看出,在串行化m_messages数据对象后,在文档类的Serialize( )函数中已经没什么需要做的了。请注意对m_messages的调用。Serialize( )把档案对象作为唯一的参量进行了传递。现在创建MultiString并测试它,它将会完成所期望的功能。

直接读写文件

尽管使用MFC内建的串行化功能是保存和加载数据的便捷方式,但是某些时候需要对文件处理过程有更多的控制权。例如,可能需要对用户的文件进行非连续的操作,某些需要I/O流、而Serialize( )函数和它相关的CArchive对象又不能进行处理的操作。在这种情况下,你可以几乎与在非Windows程序中完全一样来处理文件,直接对文件进行创建、读取和写入。即使需要深入到这个水平来进行文件处理,MFC也提供了帮助,尤其是可以使用CFile类和其派生类来直接处理文件。

CFile类

MFC的CFile类封装了所有在处理任意类型的文件时所需的函数。无论是希望进行通常的顺序的数据保存和加载还是希望构造一个随机访问文件,CFile都将支持。使用CFi1e类和老式的C方式的文件处理非常相似,但该类隐藏了一些繁杂工作的细节以使得此项工作快捷而又方便。例如,仅需一行代码就可以创建一个文件用作读取。表1列出了CFile类的成员函数和对它们的说明。

表1  CFile类的成员函数

  函    数                说      明

Constructor    创建CFile对象。如果传递的是一个文件名,就打开该文件

Destructor    释放超出范围的CFile对象。如果文件已打开,则关闭它

Abort( )        立即关闭文件而不管是否出错

Close( )        关闭文件

Duplicate( )    创建一个可复制的文件对象

Flush( )        清除流中数据

GetFileName( )    获取文件名

GetFilePath( )    获取文件的全路径

GetFileTitle( )    获取文件标题(不带扩展名的文件名)

GetLength( )    获取文件长度

GetPosition( )&n
  • 上一篇资讯: 深入MDI客户窗口编程
  • 网学推荐

    免费论文

    原创论文

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