📄 subject_19644.htm
字号:
<p>
序号:19644 发表者:殷三公子 发表日期:2002-10-30 12:04:57
<br>主题:请教CStringList的串行化问题,谢谢
<br>内容:CStringList的串行化该怎么做?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:符号 回复日期:2002-10-30 12:19:08
<br>内容:<BR> 序列化,简单地说就是向一个持久性的存储媒体—— 如磁盘文件保存对象或读取对象的过程。可以实现序列化的类——即从CObject 继承而来的类,有一个叫做Serialize 的成员函数,序列化工作主要是在这个函数当中进行的。<BR><BR> MFC 使用一个类型为CArchive 的归档对象充当磁盘文件与程序中的对象的中介。归档对象总是与一个CFile对象相关联,从中获得一些进行序列化所需要的信息,比如说文件名,以及存取标志等。对象的持续化的主要工作就是将自己的成员变量或者当前状态保存起来。我们可以使用经过重载的流入和流出操作符直接向归档对象中保存或者取出变量成员的值,而将这些数据保存到磁盘文件中的工作由CArchive 对象指示CFile 对象来完成。当用户在打开或保存拥有文档对象数据的文件或者使用文档对象的Open 、Save、Save As 菜单命令时,MFC 便会自动调用Serialize 函数。<BR><BR>使类实现序列化,需要五个步骤:<BR>1、从Cobject 类或其派生类派生用户类;<BR>2、在类声明中使用DECLARE_SERIAL 宏;<BR>3、重载Serialize 函数;<BR>4、定义不用变量的构造函数;<BR>5、在类实现文件中使用宏IMPLEMENT_SERIAL。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:不说 回复日期:2002-10-31 01:30:16
<br>内容:CStringList本身支持serialize<BR>你只要这样:<BR>CFile file;<BR>if( file.Open( szFileName, CFile::modeRead ) )<BR>{<BR> CArchive ar(&file, CArchive::load);<BR> m_listMyStringList.Serialize( ar );<BR> ar.Close();<BR> file.Close();<BR>}<BR><BR>就可以读入一个CStringList,<BR><BR>只要这样:<BR>CFile file;<BR>if( file.Open( szFileName, CFile::modeCreate | CFile::modeWrite) )<BR>{<BR> CArchive ar(&file, CArchive::store);<BR> m_listMyStringList.Serialize( ar );<BR> ar.Close();<BR> file.Close();<BR>}<BR>就可以把一个CStringList写入文件。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不说 回复日期:2002-10-31 12:14:26
<br>内容:我靠!!我最最最最最讨厌“勉强接受”乐!!!!我回答的那么完美凭什么勉强接受啊你!!!????靠…………
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -