2023年2月16日 星期四

外行人寫程式 - 番外篇AI寫程式

最近很火的chatGPT,網路上已經有不少人用它來寫程式,不否認這篇也是跟風

不過沒用過的話,就算聽說有多神,總不可能說真的把問題扔給AI,程式就自己長出來吧?

一開始我是這麼想的,所以就來測一下,給我用C#寫出能讀取.xls的程式碼


他說人家都用新的.xlsx格式了,要我換
可是普通的文書工作,我就是要存成.xls,為什麼一定要換成.xlsx?
程式碼最底下一行還在Console.Write,外行人寫程式沒有在分前後台的
同樣用C#,改用winform建立


嚄嚄,還真的照WinForms專案格式出程式碼
不過看起來怪怪的,最開始的申告怎麼看起來很眼生?
我就只有十幾年前用VS2008來寫過C#,你上面的程式碼可以用在VS2008嗎?


果然,電腦跟人腦不一樣,人腦只能給自己以前已經知道的東西
電腦你沒跟它講清楚,它就給你它能找到最新的東西,而且他還告訴我2008年的過時玩意只能讀.xls
不過看起來可以啊,就拿這個直接塞進去VS2008 Express看看能不能用,他給的完整程式碼如下


在VS2008 express建立專案後,倒也不是直接把程式塞進去就了事
WinFroms類別專案必須要另外建立控制項,當然高手都是用程式碼去建立控制項 (X
不過外行人就只會在設計頁面把控制項拉進去建,chatGPT最後是這樣說

『這個範例中,我們使用 OleDbConnection 來連接 .xls 檔案,並使用 OleDbDataAdapter 來填充 DataTable,最後將 DataTable 中的內容顯示在 DataGridView 控制項中。』

根據這段話,也就是說我必須要拉一個DataGridView控制項進去
不過程式碼的部分它_Click的東西是ToolStrip?這玩意我不熟,直接拉兩個按鈕進去替代就行,大致就長這樣


反正即時偵錯也沒報錯,就不除錯了,直接就組譯跑執行檔 XD
可是跑下去還真的報錯了 XDDD


'Microsoft.Jet.OLEDB.4.0' 提供者並未登錄於本機電腦上。
啊這種會跟你講缺什麼的錯誤就最好解決的,找來灌進去不就得了?
不過其實這問題是出在Microsoft.Jet.OLEDB.4.0是XP時代的玩意,32bit的,在那台WIN7的64bit底下不能跑啊
所以它全部的程式碼我只改了這段,上面的Jet.OLEDB.4.0換成ACE.OLEDB.12.0就能在64bit的windows環境下運作了
因為chatGPT太早關掉,不然「上面程式無法運行,Jet.OLEDB.4.0未登錄」這樣給它,說不定也能給出修正


結論上來說,以一問一答的方式,是真的可以完全用AI來寫程式了
只不過前提是編譯器、環境、IDE這些 "基本功" 的東西還是自己要會
目前chatGPT只有文字,沒有圖形介面,文字不容易解決的東西要依賴它會比較困難
如果以前要做這樣的東西,自己上網找範例、去各大論壇求大神,跟用chatGPT相比的話,絕對是要多花N倍的時間
真正是「以前是人們問AI能做什麼,以後是問AI什麼不能做」了的時代啊 (遠目