我正在使用一个文本文件来存储我的数据记录。数据以下列格式存储。
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/