看板 C_and_CPP 關於我們 聯絡資訊
我想要使用C (C++也可)寫一個區段取代的程式 有一檔案格式如下 xxx xxx ... (很多文字) KEYWORD begin .... END KEYWORD ....(很多文字) 要做的事情就是將KEYWORD以及END KEYWORD中的字換成我要的內容 我找了一些文件,似乎都是取代文字之類的 但我要做的事情是把原始的內容都改掉 行數、內文都與原先的不同 (原文只有五行,我有可能將之擴充到二十行這樣) 目前想到的作法是 開兩個檔案,一個讀取一個寫入 只要不是關鍵字的那幾行全部都是直接讀取直接寫入 讀取到關鍵字後開始放入新的文字… 不過覺得這樣很沒效率@~@ 想問問有沒有比較好得寫法~ 感謝:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.152.129
ledia:如果你要做多種取代, 檔案又不大的話, 可以全在記憶體裡做 09/22 10:55
ledia:做完再一次寫回原本檔案, 這樣不用一直 disk I/O 會快很多 09/22 10:55
DRLai:檔案本身不大,但是我要塞進去的資料很大… 09/22 11:09
holymars:有 比較好的做法就是不要用C/C++ 09/22 11:25
holymars:這種工作用script language寫不是比較快嗎XD 09/22 11:26
adrianshum:寫得快, 但跑起來不會比 C/C++ 快, 除非C/C++ 寫得超差 09/22 12:42
adrianshum:其實一面讀一面寫應該是最有效的方法了, 留意讀入寫入 09/22 12:43
adrianshum:能不能利用 buffer 之類減少overhead 吧 (太久沒寫了) 09/22 12:43