App Inventor學習記錄83,用檔案管理元件讀取CSV檔文件,把CSV檔轉成可使用的清單

接著上一篇的問答遊戲中,我們是直接在程式設計裡頭建立問題的清單,以及答案的清單來使用。但是這種建立資料的做法,實在是太麻煩了。以後要更新資料還是新增資料都很麻煩,所以這一次我們用檔案管理元件讀取 CSV檔文件來做。

記錄一下:
App Inventor學習記錄83,用檔案管理元件讀取CSV檔文件,把CSV檔轉成可使用的清單


回顧一下我在上一篇中是怎麼建立題目和答案的清單。

如果只有 5題,這種作法也不是完全不能接受。
但資料一多,想整理的時候,肯定會吐血,所以這次我們換個作法。


這個是我用 google sheet新建的一個表格。

用表格這樣建起來之後,在新增及管理上就方便多了。


畫面編排的部份如下:

由於我們要使用 excel或是 google sheet表單轉出來的 csv檔
所以我們在畫面編排這裡,要把檔案管理這個不可視的原件,拉到畫面中。
接著,我們再把已經轉成 csv檔的表單,上傳上來。


這裡補充一下,怎麼把 google sheet的表單匯出成 csv檔

依序點擊檔案下載逗號分隔值檔案(.csv,目前的工作表)
再給這個檔案一個新檔名就可以了。


至於 excel怎麼轉成 csv,我們在把原本的檔案另存新檔,選擇其它格式


然後,選擇 csv的格式來存檔

只是 excel用的是 ANSI的編碼APP INVENTOR用的是 UTF8的編碼,所以轉出來的 CSV檔暫時是不能用的。
這個問題也很好處理,只要用記事本打開轉出來的 CSV檔,在另存新檔的時候,設定編碼為 UTF8就可以用了。

不難,但有點煩,而用 google sheet直接下載成 csv檔的話,就沒有這個問題。
所以我都是用 google sheet比較多。


接下來進入到程式設計的部份。

同樣是先建立起幾個清單變數,用來看我們取得的不同表單的資料是那些。
1. 從檔案中轉出來的全部清單,就是拿來看全部的取得資料。
2. 刪除標題後的清單,就是把表格中標題刪除後的資料。
3. 隨機題目清單,就是從第 2項的資料中,隨機取幾個項目成一個新的清單。


我們在程式初始化的時候直接把這個檔案給載入。

呼叫檔案管理.讀取檔案
檔案名稱就是:”//test.cs
由於我們這裡要載入的檔案是已經上傳到素材庫裡頭的,所以這裡的直接取完整的檔名就可以。
這裡要記得一定要放檔名前面的//,這樣才讀取的到這個檔案。


我們讀取檔案之後,還不能直接用,還要經過要成清單的過程。

所以這裡就把從檔案中轉出來的全部清單,設定為 CSV表格轉清單,CSV文字就直接取文字
標籤 1.文字設定為從檔案中轉出來的全部清單來檢查一下。

接著,把從檔案中轉出來的全部清單中的第一項給刪除。
因為表單中的第一行放的是標題,這個我們取值的時候用不上,所以直接先刪掉。

然後逐項把從檔案中轉出來的全部清單的項次,加到刪除標題後的清單

呼叫隨機取 3個題目的小程式。

標籤 2.文字,設定成刪除標題後的清單
標籤 3.文字,設定成隨機題目清單
這兩個步驟,也是為了要檢查我們取得值是不是正確的。


接著我們來做隨機取 3個題目的小程式。

這個部份我們做過好幾次了,這裡就不多作說明。


我們運行一下程式,看看幾個我們取得的清單的內容是什麼。

這樣我們就把隨機題目的清單給建立起來了。


有幾個地方補充一下。

一開始從檔案中轉出來的全部清單的內容,就是上頭的內容。大家可以對著看。
刪除標題後的清單,就是把上圖中的第 1行給刪除掉。
隨機題目清單,就是選取刪除標題後的清單隨機的三項。


在接下來要做的就是利用隨機題目清單的內容,把它的內容分配給按鈕,讓按鈕顯示相關的文字,然後再做按鈕按下的判斷程式就可以完成一個問答的遊戲。

這次的 aia檔的下載連結如下:
點我下載 NO_83_Read_CSV.aia

參考書籍如下:
手機應用程式設計超簡單 App Inventor 2零基礎入門班
TQC+ 創意App程式設計認證指南
TQC+創意App程式設計認證指南解題秘笈
手機應用程式設計超簡單:App Inventor 2初學特訓班
手機應用程式設計超簡單:App Inventor 2小專題特訓班
手機應用程式設計超簡單:App Inventor 2資料庫專題特訓班

之前介紹過的一些 appinventor的使用記錄,都整理在下面這個頁面上了。
APP INVENTOR學習記錄及資源整理頁面

發表迴響