comp.lang.c FAQ 列表·
问题 19.14
Q如何在文件的中间插入或删除一行(或一条记录)?
A通常情况下,无法直接做到这一点。[脚注] 通常的解决方案是重写整个文件。
当您发现需要将数据插入现有文件中时,可以尝试以下几种方法:
- 重新排列数据文件,以便您可以将新信息附加到末尾。
- 将信息放在第二个文件中。
- 在文件首次写入时,留出一些空白(例如,一行 80 个空格,或一个字段,如0000000000),之后再用最终信息覆盖它(另请参阅问题 12.30)。(此技术在二进制模式下更具可移植性;在某些系统上,覆盖文本文件可能会截断它。)
- 使用数据库而不是平面文件。
与其实际删除记录,不如考虑将其标记为已删除,并让读取文件的代码忽略它们。(您可以偶尔运行一个单独的合并程序来重写文件,最终丢弃已删除的记录。或者,如果所有记录的长度都相同,您可以取最后一个记录,用它覆盖要删除的记录,然后截断文件。)
另请参阅问题 12.30 和 19.13。
其他链接: 进一步阅读
关于此 FAQ 列表 关于 Eskimo 搜索 反馈 版权由
托管