c - 从文件中删除记录?

标签 c file-io file

我正在使用一个文本文件来存储我的数据记录。数据以下列格式存储。

Antony|9876543210
Azar|9753186420
Branda|1234567890
David|1357924680
John|6767676767

该文件中存储了数千条记录。我想删除特定的记录,说“David|1357924680”。我正在使用 C,如何有效地删除特定记录?目前我正在使用临时文件通过省略要删除的记录将记录复制到该临时文件。复制到临时文件后,我通过截断原始文件的所有内容将临时文件的内容复制到原始文件。我不认为我这样做很有效率。帮助我。

最佳答案

向您的数据添加一列,表明它是有效 ( 1 ) 或已删除 ( 0 ) 行:

Antony|9876543210|1
Azar|9753186420|1
Branda|1234567890|1
David|1357924680|1
John|6767676767|1

当要删除记录时,覆盖单字节:

Antony|9876543210|1
Azar|9753186420|1
Branda|1234567890|0
David|1357924680|1
John|6767676767|1

Branda 现已删除。

然后添加一个数据文件压缩功能,可以用来重写不包括删除行的文件。这可以在低使用率或无使用率期间完成,因此不会干扰正常操作。

编辑

有效性列可能应该是第一列,这样您就可以更轻松地跳过已删除的行。

关于c - 从文件中删除记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3608265/

相关文章:

c++ - 单个文件非验证 xml 解析器/阅读器

c - 在保留功能的同时合并 linux 中的两个程序

java - 如何使用文件路径获取文件位置?

java - 如何递归搜索文件并跳过权限不足的文件?

java - Java中如何指定文件路径?

c++ - 如何将 .h264 流保存到图像中? C++

c - 无法更新程序中的项目conf变量

c - 在 Linux 中使用 c 实现管道

java - Java 中的 Nasa 二进制文件

向文件中插入行的 Pythonic 方式