作者DRLai (苏打)
看板C_and_CPP
标题[问题] 档案区段取代问题
时间Tue Sep 22 10:37:15 2009
我想要使用C (C++也可)写一个区段取代的程式
有一档案格式如下
xxx
xxx
... (很多文字)
KEYWORD begin
....
END KEYWORD
....(很多文字)
要做的事情就是将
KEYWORD以及
END KEYWORD中的字换成我要的内容
我找了一些文件,似乎都是取代文字之类的
但我要做的事情是把原始的内容都改掉
行数、内文都与原先的不同
(原文只有五行,我有可能将之扩充到二十行这样)
目前想到的作法是
开两个档案,一个读取一个写入
只要不是关键字的那几行全部都是直接读取直接写入
读取到关键字後开始放入新的文字…
不过觉得这样很没效率@~@
想问问有没有比较好得写法~
感谢:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.152.129
1F:推 ledia:如果你要做多种取代, 档案又不大的话, 可以全在记忆体里做 09/22 10:55
2F:→ ledia:做完再一次写回原本档案, 这样不用一直 disk I/O 会快很多 09/22 10:55
3F:→ DRLai:档案本身不大,但是我要塞进去的资料很大… 09/22 11:09
4F:推 holymars:有 比较好的做法就是不要用C/C++ 09/22 11:25
5F:→ holymars:这种工作用script language写不是比较快吗XD 09/22 11:26
6F:→ adrianshum:写得快, 但跑起来不会比 C/C++ 快, 除非C/C++ 写得超差 09/22 12:42
7F:→ adrianshum:其实一面读一面写应该是最有效的方法了, 留意读入写入 09/22 12:43
8F:→ adrianshum:能不能利用 buffer 之类减少overhead 吧 (太久没写了) 09/22 12:43