请教一个数据串行化的问题?

在一个单文档程序中,定义了2个字符串变量接受用户输入,CStringstr1,str2.关闭程序的时候把str1,str2串行化到文件中。但是打开文件的时候,怎么把文件数... 在一个单文档程序中,定义了2个字符串变量接受用户输入,CString str1,str2.
关闭程序的时候把str1,str2串行化到文件中。

但是打开文件的时候,怎么把文件数据还原到str1,str2?
写得不错,但是你没弄懂我的意思。
比如用户对str1输入1234, 对str2输入5678.串行化保存以后文件变成了12345678。
再打开文件的时候,怎么把str1变成1234,str2变成5678,用文档类的Serialize()函数实现。
展开
 我来答
lengyu9010
2011-08-29 · TA获得超过218个赞
知道小有建树答主
回答量:226
采纳率:100%
帮助的人:145万
展开全部
1、保存文件
CString str1, str2;
//为str1,str2赋值
...

//调用保存文件对话框
CFileDialog dlgSave(FALSE);
if (dlgSave.DoModal() != IDOK)
return;

//记录存档文件的文件名
CString strFilePathName = dlgSave.GetPathName();

//创建存档文件
CFile fileSave;
if (fileSave.Open(strFilePathName, CFile::modeCreate|CFile::modeWrite)==TRUE)
{
//串行化存储数据
CArchive ar(&fileSave, CArchive::store);
ar << str1;
ar << str2;
ar.Close();
fileSave.Close();
}
else
{
AfxMessageBox("保存文件失败!");
return;
}

2、打开保存的文件
//调用打开文件对话框
CFileDialog dlgOpen(TRUE);

//显示打开文件对话框
if (dlgOpen.DoModal() != IDOK)
return;

//记录存档文件的路径和文件名
CString strFilePathName = dlgOpen.GetPathName();

//读取存档文件内容
CFile fileOpen;
if (fileOpen.Open(strFilePathName, CFile::modeRead)==TRUE)
{
//串行化读取数据
CArchive ar(&fileOpen, CArchive::load);
ar >> str1;
ar >> str2;
ar.Close();
fileOpen.Close();
}
else
{
AfxMessageBox("打开文件失败!");
return;
}
7t427v
2011-08-29 · TA获得超过1029个赞
知道小有建树答主
回答量:773
采纳率:0%
帮助的人:564万
展开全部
应该行吧,我写了个类需要的话Hi一下

参考资料: 百度一下

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式