本週作了影響我最重大的一件事
大概就是分享了一個程式吧
也就是上一篇所分享那個無路用的blog備份工具
趁著我現在還沒有忘記分享心情的時候趕快來記一下

[緣起]
以前常常看到網路上有些強者會分享自己寫的東西給大家用
像是EFIX就是強者寫出來的掃隨身碟病毒工具
每次都會激發起我"看看別人想想自己"
跟人家一樣學了寫程式,但是是學了web程式XD
都沒有機會寫個應用程式分享給別人用

[有天]
因為開發專案需要去看了寫java應用程式用到的SWT
看完特色後發現用它來開發java應用程式好像還不錯
但是不自己寫一個玩玩看,不知道可以完成怎樣
剛好又有人詢問我可以分享備份blog的程式
那個程式因為寫給自己用而已,
程式碼用一條鞭法從頭寫到尾
每年要備份當年度的blog資料時還要自己去改code重新compile
設計一整個非常簡陋,
除了要自己手動去改檔案位置,
還要去改年份資料的判斷式
每次都要重看一便程式碼才知道要改哪

[於是]
我就開始試著重新改寫程式碼,
用SWT提供的UI當作外皮去重寫這一整個程式
寫的過程也不算太順利,總是會有一些讓我摸不著頭緒的問題發生
像是,分析blog資料後動態產生年份勾選的按鈕怎樣都顯示不出來
察了資料後才知道原來這邊還要呼叫shell去layout
可能是我沒有摸懂SWT的運作原理就硬寫的關係吧

[版本1]
好不容易把UI的問題都搞定,整個運作流程在'正常資料'下run一次沒有問題
我就不管那不支援中文路徑跟遇到有問題字元會錯誤的問題丟出第一版
因為光是弄UI就費了一大部分的心力了
而且工作上突然說不用SWT了,我也懶的再改下去

[版本2]
基本上這程式應該就只有當要的sonic跟arol有測試吧
sonic大概因為本身就是資訊背景,遇到問題會自我排除,
很順利的跟我回報程式ok!!
而arol就不同了,原本就知道的兩個問題果然發生了
因為arol不是資訊背景
加上blog資料有個人隱私性
我也不方便請他提供blog資料讓我弄成'正常資料'
本著好人當到底,送佛送上西天的佛心
我還是回來面對這兩個問題!!

幸好網路上很多強者程式設計師願意分享研究成果
我找到了.NET版本教如何用正規表示一次清除所有的無效字元
趕快把這個idea用在我的程式中,解決了我一個問題
也因為這個方法要先讀取全部xml檔,而非用xml parser去讀檔
所以也解決了xml parser不支援中文路徑的問題
這一切大概可以叫做因禍得福吧(成語可以這樣用嗎??)

[版本3]
版本2總算讓arol可以順利執行了!!但是也出現了新的問題
這次的問題也是兩個,
其一:文章的時間不正確
其二:抓圖時有時候會當掉
造成'其一'問題的原因是我抓的日期是修改文章的最後日期
而不是按下新增文章的日期,這也是無名所顯示的文章日期
而'其二'的問題我猜想是下載某張圖片時因為抓不到就是就wait在那
所以看起來就像是掛掉了
後來我改成等0.5秒如果沒有抓下來就放棄,最後顯示出來有問題的圖檔
但是因為顯示有問題的圖檔讓我發現有個bug~~
有些圖檔網址用正規表示一次抓取
但因為下的語法有問題,會抓錯圖片連結...
不過我暫時不想管了!!
現在真的有點小忙,等真的有時間再來改吧XD

[感想]
原本只是自己用休閒時候寫出的程式
卻因為想讓真正需要用它的人可以用
沒有想到會花了比自己工作時更努力的態度去改
只能說...我還真的是佛心來了~~
arrow
arrow
    全站熱搜

    45 發表在 痞客邦 留言(0) 人氣()