大型文件的局部修改

breezeqf 2002-03-25 09:06:39
现有一个大型文件(数百兆),需要对其中的一部分进行修改(数兆,主要为“改写”操作,能够“部分删除”也行),向各位请教该如何实现。

本打算采用常见的FILE或fstream以及TFileStream等方式来打开文件,进行相应的读写操作,但都只能实现“插入”、“附加”或“删除整个文件,再写入”,不能达到“改写”的目的。百般无奈,特向各位求教,谢谢!
...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
breezeqf 2002-03-27
  • 打赏
  • 举报
回复
问题解决了,用“r+”模式打开文件可以进行改写,谢谢各位!
dolphi 2002-03-26
  • 打赏
  • 举报
回复
用API啦。CreateFile();
部分删除是很慢的。你试试大型数据库的Pack命令就知道了,物理删除纪录是多么的费时。我建议最好是把不用的地方设置标志位,或者建索引。
breezeqf 2002-03-26
  • 打赏
  • 举报
回复
到底应该采用那种模式打开文件?
我使用“w”和“w+”都会将原文件先删除,再写入新信息。
WebBar 2002-03-25
  • 打赏
  • 举报
回复
块移动的方式太慢,还不如用临时文件的方式比较快
BCB 2002-03-25
  • 打赏
  • 举报
回复
1。改写: 很简单,读写方式,打开定位,写入;
2。插入,删除: 很费时,要将后面的内容集体搬家,这不可避免;

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧