在二进制文件中删除记录

Deleting a record within a binary file?

本文关键字:记录 删除 二进制文件      更新时间:2023-10-16

最后一周我一直在用二进制文件弄乱。我不知道该怎么做的一件事是从二进制文件中选择性删除记录。在C 中可能可以吗?如果没有,您可以做什么。

我正在考虑,也许可以创建一个没有内部记录的重复文件,但是对于非常大的数据文件来说,这似乎效率低下。有什么更有效的方法,还是有效地复制文件的任何方法?我很惊讶有删除文件的方法,但没有从文件中选择性删除。

与内存中的数据结构不同,您无法从文件中删除记录。您必须:

  1. 将文件的内容读取到内存数据结构
  2. 从内存中删除数据结构的相关数据。
  3. 将最新的数据结构写回文件。

只需确保记录曾经有一个标志"已删除",该标志是在第一次编写记录时设置为false的标志,但是如果要标记删除记录,则将其更改为true。