请教:又有什么好的方法直接可以修改一个文档文件的内容呢?

etrees 2003-01-16 11:09:02
我得方法:使用fopen打开文档,然后把文档内容按行读入一个二维字符串数组保存,在字符串数组中相应的地方修改,完毕后再写入文档
要求使用基本库

我觉得我得方法不妥的地方是假如文档很大的话就要求分配大量的空间来保存数据,同时效率不搞,有什么好方法直接可以修改文档呢?谢谢先!
...全文
2 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chijiao 2003-01-20
好象没有对同一个文件边读边修改.
不过如果文件太大,可以考虑引入临时文件,将原文件一段一段的处理到临时文件中,最后恢复原文件.
回复
etrees 2003-01-18
用速度换取空间似乎行不通啊,我读取的目的是想在字符数组中修改,修改完了,再回写进文件,你说的那种方法怎么实现回写呢?文件的写入好像只有两种:覆盖,追加。我使用了覆盖。不知道还有其他的写入方式不
回复
rtdb 2003-01-16
可能优化的地方:
1. 若是可以, 直接跳到要修改的地方, 开始读出。
2. 若是修改后与修改前字节数相同,后面的可不重写。
3. 若是担心内存开销, 可以分块处理。读一块, 处理一块, 写一块。
再用同样的内存读下一块。
回复
沙沙的吹 2003-01-16
你一次不要读完,读一部分,然后修改,用fseek()定位,存储。在读一部分,……。这样你的程序执行速度没有那么快,可没办法,以速度换空间
回复
etrees 2003-01-16
我也这么想过,不过我发现Stream I/O不提供直接修改的函数啊,是不是我孤陋寡闻不知道呢?
我现在这能是按我得那个方法做
回复
发动态
发帖子
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
社区公告
暂无公告