如何写部分文件?

时间:2014-03-05 21:46:04

标签: c++ windows file-io

我需要定期写出一堆东西来防止数据丢失。棘手的是,并非写入文件的所有内容都会一直在变化,但它们可能会在数据的各个区域中发生变化的速率由用户确定并且是不可预测的。

由于数据结构保持不变,是否可以只写入部分文件?另外,如果将数据存储到多个文件中,这种方法将如何进行比较,例如我分别存储每个变量(将是数千个,我可能在任何情况下都不会沿着这条路走下去)?

2 个答案:

答案 0 :(得分:0)

可以在文件中查找和写入任意位置,但只有在您编写的字符数与要替换的字符数相同或文件结构有一些时才能使用另一种分隔数据的方式,你可以保持最新的写入。

答案 1 :(得分:0)

在一天结束时,如果你知道你可能需要存储的所有数据元素,你可以开发自己的STRICT文件格式,可能是由行划分,或者其他一些方法可以让你轻松GET-To,您想要更改的位置。如果你正在存储像字符串这样的东西,其SIZE可能会改变,那么搜索可能很容易,但是修改可能会更困难,因为下面的所有内容都必须被推下来,以便在更长时间内添加字符,或者向上移动如果数据正在缩小。

也许我认为这样做的方法是当一个值从您文件中已知的内容发生变化时写出整个文件,否则就不管它了。

我认为您还需要意识到的是,您可能不会意识到尝试修改文件的部分会带来任何性能提升,而不是再次写出整个文件。这是将整个文件写出来,与通过文件进行搜索的比较,以及可能读取过去想要修改,修改,然后将所有内容重新写入过去的所有内容以及所需元素的缩小。修改。