martedì 18 aprile 2017

Popolare lista da csv (Mit App Inventor 2)

Dopo aver imparato ad usare le liste (lists) in Mit App Inventor 2, sicuramente ti verrà voglia di popolarle non da codice, ma da dei file esterni, presumibilmente dei csv.

Prendi ad esempio la costruzione di un'applicazione che deve comprendere una lista con tante parole, magari catalogate per categorie. Centinaia e centinaia di parole sarebbe un suicidio gestirle all'interno di una lista app inventor, mentre tramite un file con .csv, comodamente apribile da excel, il tutto risulterebbe molto più comodo e veloce.


Come popolare una lista da un file csv in Mit App Inventor 2


Per poter caricare in una list blocks il contenuto presente in un file csv, è possibile utilizzare due specifici blocchi (blocks) di mit app inventor 2, presenti ovviamente nel blocco liste (lists):
  • Lista da riga csv (list from csv row text)
  • Lista da tabella csv (list from csv table)

Popolare lista da csv (Mit App Inventor 2)

Il primo blocco serve nei casi in cui il csv abbia una sola riga (o dei delimitatori speciali al posto dell'acapo), il secondo blocco invece, il più usato lista da tabella csv, crea una lista multipla contenente i valori presenti nelle colonne del csv.

Prendiamo ad esempio un classico csv con una colonna contenente dei nomi e nell'altra delle categorie.


Per poter caricare questo file in app inventor, dovremo usare l'oggetto chiamato File, presente nel menù Archiviazione (storage).

Una volta trascinato l'oggetto file nel visualizzatore (viewer), andiamo nei blocchi a generarne l'azione al click, con Esegui file leggi da nome file (call file read from file name), dove nel nome file scriviamo il nome del file csv (precedentemente caricato nei media della nostra app), preceduto da due barre // (es. //nomefile.csv).

Esegui file leggi da nome file

Adesso bisogna far popolare la nostra lista app inventor con il contenuto del csv, lanciando un'azione alla lettura del file caricato.
Il blocco da utilizzare è Per sempre quando file lettura completata (when file got text), al quale possiamo inserire poi tutti i comandi ed i cicli necessari per poter ripulire i dati appena caricati.

Per sempre quando file lettura completata

Purtroppo infatti, è vero che questi blocchi consentono di caricare in una lista appinventor il contenuto di un file csv, è però anche vero che senza un'accurata pulizia, questi risultano di fatto inutilizzabili.
Potrai infatti trovare dei punti e virgola di troppo, delle parentesi da far sparire con il comando sostituisci (replace), o altro.

Trovi comunque tutti gli esempi necessari dentro un file di progetto .aia scaricabile da questo link, il cui risultato finale è riassumibile in questa immagine:

Risultato finale

Potrò sembrare ripetitivo, ma anche imparare a popolare le liste app inventor tramite file csv, è un'operazione fondamentale per poter sviluppare applicazioni / giochi di un certo spessore.

Torna all'elenco delle lezioni

Lascia un commento!