2008年8月19日

拋棄式Groovy - CSV資料轉PHP陣列

Groovy很適合用來寫拋棄式程式,也就是用過即丟的小程式,例如在一些情況我們可能需要處裡Excel或CSV資料檔,產生成部分的程式碼,如果資料量小、不到十筆的那種,花點時間修改動手做並不太費事,但若資料再多一些,有30筆、50筆、100筆,這時候就陷入兩難了,若為了這樣的小需求去寫一個程式似乎不合成本,而且也不會變成未來正式發展的程式功能。

用Groovy很簡單就可以克服這個問題,因為它寫一個小程式來應付這樣的需求,可以說是不痛不癢,簡單開個記事本之類的文字編輯器,寫個像以下範例的簡短程式碼,點兩下執行就將任務自動化完成。這麼做可以解決的其實不止眼前的任務,因為當來源資料有所異動時,很可能需要再重複進行一次,若沒有這個小程式,當初所做的苦工可就還要再累一次、時間再浪費一次,而這種小程式好寫好改,下次遇到其他類似狀況,可能稍微改個兩三行就能解決新問題。

這個小程式可處裡的資料檔(filename.csv)內容像是:
key1,value1
key2,value2

即逗號隔開的CSV檔,而產生的PHP代碼區塊會是:
array("key1"=>"value1","key2"=>"value2");
text = new File('PATH','filename.csv').text

list = []
text.split('\n').each {
item = it.split(',')
list << "\"${item[0]}.${item[1]}\"=>\"${item[2].trim()}\""
}

new File('PATH','filename.txt').write("array("+list.join(',\r\n')+");")

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!