[問題] 檔案區段取代問題

看板C_and_CPP作者 (蘇打)時間14年前 (2009/09/22 10:37), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/1
我想要使用C (C++也可)寫一個區段取代的程式 有一檔案格式如下 xxx xxx ... (很多文字) KEYWORD begin .... END KEYWORD ....(很多文字) 要做的事情就是將KEYWORD以及END KEYWORD中的字換成我要的內容 我找了一些文件,似乎都是取代文字之類的 但我要做的事情是把原始的內容都改掉 行數、內文都與原先的不同 (原文只有五行,我有可能將之擴充到二十行這樣) 目前想到的作法是 開兩個檔案,一個讀取一個寫入 只要不是關鍵字的那幾行全部都是直接讀取直接寫入 讀取到關鍵字後開始放入新的文字… 不過覺得這樣很沒效率@~@ 想問問有沒有比較好得寫法~ 感謝:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.152.129

09/22 10:55, , 1F
如果你要做多種取代, 檔案又不大的話, 可以全在記憶體裡做
09/22 10:55, 1F

09/22 10:55, , 2F
做完再一次寫回原本檔案, 這樣不用一直 disk I/O 會快很多
09/22 10:55, 2F

09/22 11:09, , 3F
檔案本身不大,但是我要塞進去的資料很大…
09/22 11:09, 3F

09/22 11:25, , 4F
有 比較好的做法就是不要用C/C++
09/22 11:25, 4F

09/22 11:26, , 5F
這種工作用script language寫不是比較快嗎XD
09/22 11:26, 5F

09/22 12:42, , 6F
寫得快, 但跑起來不會比 C/C++ 快, 除非C/C++ 寫得超差
09/22 12:42, 6F

09/22 12:43, , 7F
其實一面讀一面寫應該是最有效的方法了, 留意讀入寫入
09/22 12:43, 7F

09/22 12:43, , 8F
能不能利用 buffer 之類減少overhead 吧 (太久沒寫了)
09/22 12:43, 8F
文章代碼(AID): #1Ak3XSRg (C_and_CPP)