void CTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CFile file;
UpdateData();
m_Edit1.TrimLeft();
file.Open("ccc.txt",CFile::modeCreate|CFile::modeNoTruncate
|CFile::modeWrite|CFile::shareDenyNone);
{
CArchive ar(&file,CArchive::store);
Serialize(ar);
ar.Close();
file.Close();
}
}
void CTestDlg::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
if (ar.IsStoring())
{ // storing code
ar << m_Edit1;
}
else
{ // loading code
ar>>m_Edit1;
}
} 当我输入一个数后,点按钮,保存,怎么在文件的这个数字前面有个黑点,是怎么回事。
{
// TODO: Add your control notification handler code here
CFile file;
UpdateData();
m_Edit1.TrimLeft();
file.Open("ccc.txt",CFile::modeCreate|CFile::modeNoTruncate
|CFile::modeWrite|CFile::shareDenyNone);
{
CArchive ar(&file,CArchive::store);
Serialize(ar);
ar.Close();
file.Close();
}
}
void CTestDlg::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
if (ar.IsStoring())
{ // storing code
ar << m_Edit1;
}
else
{ // loading code
ar>>m_Edit1;
}
} 当我输入一个数后,点按钮,保存,怎么在文件的这个数字前面有个黑点,是怎么回事。
你使用的是 serialize方法,他自己负责写文件的格式,不能够按照常规的只写一个字符串的方式来理解。他实际上是先写入了字符串的长度,然后再写字符串的内容的。
这就是系统自己的SERIALZIE方法的记录方式。如果你再写一些数字进去,你还会发现他们有的时候是不相邻的,中间被插入了几个空白(数字0),因为它又搞了一个4字节对齐的方案。有时间多写一些东西尝试一下就知道了。
例如定义一个STRUCT结构,用SEEIALIZAE方法写出去,然后看磁盘文件,就可以看到并不是按照定义的数字顺序依次排列的(如同前段的解释)。要不使用相同serialize读取工作可就难喽。