看板 PttSuggest 關於我們 聯絡資訊
※ 引述《in2.bbs@ptt.cc (哭哭饅頭比較漂亮)》之銘言: : ※ 引述《monsa (不能原諒的事)》之銘言: : : 那不然 : : 可不可以先把推文和文章的檔案分開 : : 各自獨立一個檔案 : : 這樣子就可以寫單獨刪除推文的指令了 : 這樣子的話 more.c 就要重寫了 @_@;;;; 加個索引來定址每段推文的位置,這樣要刪的時候就可以很快的找到,不過有個 問題是: 文章被重新編輯後就不行了 @@ 那個索引檔就報廢了 XD 而且檔案系統 會有一堆小小碎碎的檔案 要不然... 瞬間有另一個想法: 分開推文的檔案,該檔案前若干位元組內含原文的結尾位置,然後有新的推文時 同步新增到推文檔案與原始文檔。 然後要刪除第 K (K>=0) 筆推文時,就重新把第 K+1 筆到最後筆寫回原始文檔 (原始文檔結尾 + K * 每筆推文長度) 好像推文的長度是固定 79 bytes 貌 ? 或是在那一行以 " <本推薦文已被 xxxx 刪除> " 的字樣蓋過,等 I/O load 低 時在 compact (像刪文那樣子) 然後要編輯原文時,可以把推文部分先裁掉,這樣就不會有亂改推文的問題。改 完再把推文黏回去原文尾巴 (或許再加上編輯時間等提醒被編輯過用的字樣 ?) 不過... 檔案系統還是有一堆細細碎碎的檔案... ^^| 這應該可以用一些資料庫 的方法處理掉 (還是乾脆塞到資料庫裡 @@ 不過醬子好像就破壞了 BBS 的工程 美感了) Anyway, 醬子 more.c 就不用重寫了 ^^Y 然後... 如果要實作刪推文的功能的話,希望能夠保留僅把數字歸零,因為有時 候只是不想看到一堆花花綠綠的數字 ^^"" -- 強求的東西 還是會走的 -- ※ 發信站: 新批踢踢(ptt2.cc) ◆ From: 210.85.191.102