推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

利用序列化进行文件读写

   2023-08-11 网络整理佚名1610
核心提示:我们可以利用各种文件存取方法完成这些工作,但MFC中也提供了一种读写文件的简单方法——“序列化”。当通过序列化进行文件读写时你只需要该类的序列化函数就可以了。ar)函数,并调用各个进行序列化的类的进行数据读写就可以了。当然你也可以在文档类的内部进行数据读写,下面的代码利用序列化功能读写数据:

在很多应用中,我们需要保存数据或者从介质中读取数据,这就涉及到文件操作。 我们可以使用各种文件访问方法来完成这些任务,但是MFC还提供了一种简单的读写文件的方法——“序列化”。 序列化机制通过更高层的接口函数为开发者提供了更加人性化、透明的文件操作方法。 例如,您可以将字符串写入文件而不关心具体长度。 读出时也是如此。 您甚至可以操作字符串数组。 借助MFC提供的自动分配内存的类的支持,您可以更轻松地读取/写入数据。 如果需要,您还可以编写具有序列化功能的自己的类。

序列化应该是最底层需要序列化的类支持的,也就是说,如果需要序列化一个类,那么这个类就必须支持序列化。 通过序列化读写文件时,只需要该类的序列化函数即可。

如何让类具有序列化功能? 您需要以下职位:

该类派生自 .

在类声明中包含宏定义。

提供默认构造函数。

在类中实现该函数

使用指定类名称和版本号

以下代码为简单的身份证记录创建一个类,该类也支持序列化。

在H

字符[10];

字符 szID[16];

* p下一个;

};

班级:

()

();

〜();

// 序列化相关

*pH头;

//其他成员函数

无效(&ar);

};

在CPP中

(,,1) //为1,版本用于读取数据时检测

无效::(&ar)

整数;

如果(ar.())

{//保存数据

=();//获取链表中的记录条数

;

for(int i=0;i>*(((BYTE*)pID)+j);//一次读取所有数据

//修改链表

当然,上面的代码很不完整,但是已经可以说明问题了。 这是一个可以支持序列化的类,并且可以根据记录数动态分配内存。 在序列化中,我们使用了一个类,该类用于在序列化时提供读写支持,它重载了运算符符号,并提供了Read和Write函数来读写数据。

我们来看看文档中的序列化功能如何使用。 只需要修改文档类的(&ar)函数,调用各个序列化类来读写数据即可。 当然,您也可以在文档类内部读取和写入数据。 下面的代码使用序列化函数来读写数据:

班级:

无效(&ar);

;

;

……

无效::(&ar)

如果 (ar.())

{//既然定义了运算符号,就可以直接使用>>和

 
标签: 序列化
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON