MFC中,用序列化向二进制文件写时, 如何追加到二进制文件尾部?而不覆盖原文件内容
我是一初学者,正编一个MFC程序,要将编辑框中的数据序列化写到二进制文件中,然后读出来。现在每次都能将数据写到二进制文件里面,然后也能读得出来。但问题就是:每次写到文件中时,都会把以前的内容覆盖。读出来的只是新输入的信息。查了一下原因,说是在打开文件后应该加上一个函数SeekToEnd(),使指针指向文件末尾。 然后我也加上了,但运行后仍然不行,还是会覆盖。
我的源代码大致如下:
void CRegisterDlg::OnBnClickedOk()
{ UpdateData(TRUE);
CFile file;
CObArray m_docObArray;
……
m_docObArray.Add(p);// p是要存储的对象类的指针 你懂的
if(file.Open(_T("filetest .bin"), CFile::modeWrite|CFile::modeCreate)) {
file.SeekToEnd();
CArchive ar(&file, CArchive::store);
m_docObArray.Serialize(ar);
}
CDialogEx::OnOK();
}
序列化函数读写都没有问题了,就差这点了。拜请高手指点一下迷津啊!