繁体   English   中英

CFile写作问题

[英]CFile writing question

在我的MFC应用程序中,我正在使用CFile类将数据写入文件。 我为每个数据成员使用Write()方法按顺序存储了CParagraph类的对象序列。 我使用Read()方法从文件读取到内存。 CParagraph的成员之一曾经是int类型,但是现在我必须将其更改为size_t,因为int无法容纳足够大的数据。 如果我的应用程序读取了在此更改之前创建的文件,然后将CParagraph对象保存回该文件,则size_t的大小将传递给Write方法,而不是int的大小,因此该文件将增大。 我的问题是:由于对象变大,在修改和保存对象之后写入的数据是否会被覆盖并因此被破坏?

谢谢。

是。 如果文件中的任何内容更改了大小,则必须重新保存之后的所有内容。

通常将“版本”字符保存为文件的第一部分。 然后,当您需要调整变量的大小(或更改大量内容)时,可以在保存时更改版本。 然后,在加载时,您可以检查版本,并使用核心响应代码来加载它。 然后,您仍然可以打开旧版本的文件。 请注意,此版本仅应在文件格式更改时更改,而在您重建/发行时不应该更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM