[問題] 檔案插入

看板C_and_CPP (C/C++)作者 (CA)時間15年前 (2011/03/29 00:11), 編輯推噓2(2013)
留言15則, 5人參與, 最新討論串1/1
請問如何在寫入檔案之後 再往回插入另一段資料呢? 因為新的那段資料要在結尾才算得出來 所以我無法預先留空 有什麼有效的方法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.125.14

03/29 00:12, , 1F
何不等到新的資料算出來後,再全部寫進檔案呢?
03/29 00:12, 1F

03/29 00:24, , 2F
因為資料不算小,通常會是 400MB ~ 700MB
03/29 00:24, 2F

03/29 00:25, , 3F
檔案的規格也說這段資料一定要出現在前面
03/29 00:25, 3F

03/29 00:28, , 4F
另外維護一個 position ←→ data 對的表格, 有新算出
03/29 00:28, 4F

03/29 00:29, , 5F
來的結果存在這表格, 之後再用這表格&舊檔案再轉檔?
03/29 00:29, 5F

03/29 00:32, , 6F
樓上的意思是說,再寫另一個新檔案嗎?
03/29 00:32, 6F

03/29 00:34, , 7F
新算出來的資料先別寫, 最後再做合併~
03/29 00:34, 7F

03/29 00:36, , 8F
這樣在資料量大的時候用的額外時間空間不會很大嗎?QQ
03/29 00:36, 8F

03/29 00:38, , 9F
舊檔+新資料→覆寫舊檔
03/29 00:38, 9F

03/29 00:40, , 10F
這樣空間上應該解決了吧~ 搬移感覺是難免的
03/29 00:40, 10F

03/29 00:43, , 11F
嗯 ... 看起來還是免不了 move
03/29 00:43, 11F

03/29 05:19, , 12F
算兩次如何?
03/29 05:19, 12F

03/29 08:45, , 13F
樓上是指?
03/29 08:45, 13F

03/29 23:38, , 14F
可以參考fseek的用法,請小心使用
03/29 23:38, 14F

03/30 13:19, , 15F
fseek 不是只能移動寫入位置而已嗎?
03/30 13:19, 15F
文章代碼(AID): #1DaBCoZY (C_and_CPP)
文章代碼(AID): #1DaBCoZY (C_and_CPP)