※ 引述《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