作者HZYSoft (pcman.ptt.cc)
看板PCman
標題Re: [建議] pcman 線上patch功能
時間Tue Mar 23 22:24:40 2004
※ 引述《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
1F:→ honst37:收錄至 z-10-15 !! 推 203.217.100.80 03/23
2F:→ SStar:原來是這個樣子啊... 推140.113.236.231 03/23
3F:→ Nakoruru:可否提供設定值轉換程式?供升級時用的 推 218.175.28.81 03/23
4F:→ Nakoruru:或者提供"匯出設定值成文字檔"與匯入功能 推 218.175.28.81 03/23
5F:→ Nakoruru:這應能兼顧升級方便與快速(亦方便user除錯 推 218.175.28.81 03/23
6F:→ pptpb:這樣每次升級就要換一次轉換程式啦 :~ 推 140.113.92.21 03/23
7F:→ pptpb:推「讓人忍不住把他寫成這樣」 :D 推 140.113.92.21 03/23
8F:→ sicao:好龜毛 龜毛好~XD 推 61.224.7.211 03/23
9F:→ Nakoruru:第二個方案(匯出、匯入)就不用啦~ 推 218.175.28.81 03/24