Re: [建議] pcman 線上patch功能

看板PCman作者 (pcman.ptt.cc)時間20年前 (2004/03/24 06:10), 編輯推噓9(900)
留言9則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《SStar (星星)》之銘言: : 我覺得最方便的方法應該是 : 把使用者會修改的設定檔都分出來 : 就像現在的config資料夾一樣 : 這些config檔的格式都固定 : 然後以後有更新的時候 : patch檔就只包含修改的檔案 : (不包含config檔) : 接著下載patch檔覆蓋原來的檔案 : 如此一來使用者的設定都還存在 : 也不用使用麻煩的更新程式了 會造成這種問題其實還是歸咎到 PCMan 的特殊設計方式 其他軟體設定檔多半可以沿用是因為採用文字格式 也就是Wnidows 3.1時代的 ini 檔,比較先進的軟體可能採xml格式(少見) 至於 PCMan 為了貪圖啟動快速,採用非文字完全二進位格式, 所以儲存的資料雖然類似,各位可以去比較,PCMan的設定檔應該遠比同類 軟體來的小,所以所有設定值可以瞬間載入完畢,這是為了啟動快速還有省記憶體 別人用ini載入設定值是要先傳入字串,系統幫他們在設定檔中搜尋,找到 相同的項目,再讀出設定值字串,重新轉換成數字或什麼的...頗為麻煩 至於PCMan則是把所有設定值能夠一次讀取的純數值部分都放在一起 一次就直接把全部設定載入完畢,沒有任何搜尋動作,所以很快, 而由於不是轉成文字格式儲存,檔案大小更小,別人都是好幾KB,PCMan只不到1KB 我承認這樣的設計方式有缺失,因為內部格式一旦變動設定檔就無法讀取 這是致命缺點,但是啟動速度快又可一次載入,讓人忍不住把他寫成這樣 :) 我猜大概所有教過程式語言的教授看到我的程式碼都會罵我,寫這什麼鬼 既不安全又不合規定,哪有人C++程式這樣寫的? 沒錯! 我用的寫法完全不標準 使用了非常詭異的方式,刻意有計畫的安排物件在記憶體當中的配置方式, 以便於我能夠用最低階最快速的方式載入和複製,但完全破壞了物件導向程式的優美 儘管如此,還是一直維持這樣的設計是因為,經過實測他載入真的很快 大概沒那個寫C++的人會寫出這麼醜的東西,用低階語言的方式寫優美的高階C++程式 沒辦法,誰叫我不是受正規訓練的,自己看書亂學倒是弄出一堆書上也不建議的作法 不過這個設計方式爛是爛,速度卻還滿快的,而對於PCMan原本的設計精神來說, 啟動速度一直是很重要的 :) 所以這部分可能很難,如果要相容舊版格式, 那這種可以高速載入的特性可能會喪失,當然這還是我太放不開...不知道在堅持啥 即使是變慢,其實user也感覺不到吧? 而且設定檔就算變大,耗用的硬碟空間還是 一樣多,並沒有實際上的差別,不過,算我固執吧! 對軟體還是有些偏執^^ 有些事情就是很堅持但也不是很確定為什麼一定要這樣... :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.59.3

推 203.217.100.80 03/23, , 1F
收錄至精華區 z-10-15 !!
推 203.217.100.80 03/23, 1F

推140.113.236.231 03/23, , 2F
原來是這個樣子啊...
推140.113.236.231 03/23, 2F

推 218.175.28.81 03/23, , 3F
可否提供設定值轉換程式?供升級時用的
推 218.175.28.81 03/23, 3F

推 218.175.28.81 03/23, , 4F
或者提供"匯出設定值成文字檔"與匯入功能
推 218.175.28.81 03/23, 4F

推 218.175.28.81 03/23, , 5F
這應能兼顧升級方便與快速(亦方便user除錯
推 218.175.28.81 03/23, 5F

推 140.113.92.21 03/23, , 6F
這樣每次升級就要換一次轉換程式啦 :~
推 140.113.92.21 03/23, 6F

推 140.113.92.21 03/23, , 7F
推「讓人忍不住把他寫成這樣」 :D
推 140.113.92.21 03/23, 7F

推 61.224.7.211 03/23, , 8F
好龜毛 龜毛好~XD
推 61.224.7.211 03/23, 8F

推 218.175.28.81 03/24, , 9F
第二個方案(匯出、匯入)就不用啦~
推 218.175.28.81 03/24, 9F
文章代碼(AID): #10OBNDc1 (PCman)
文章代碼(AID): #10OBNDc1 (PCman)