DATA data1 [, data2 [, data3 ... ] ] DATA [AS data type] data1 [, data2 [, data3 ... ] ] DATA LOAD "filename" AS TEXT
Il comando DATA
serve per creare un elenco di dati che saranno
utilizzati in altre parti del programma. È come un contenitore in
cui vengono memorizzati valori che saranno poi “letti” e utilizzati
da altri comandi.
Il comando DATA
è solitamente posizionato all'inizio del programma
o in una sezione dedicata alle definizioni dei dati, ma non è obbligatorio.
data1
, data2
, … e così via devono essere sostituiti con i dati che si
desidera memorizzare all'interno del programma. Possono essere numeri o
stringhe di testo. Per leggere i dati contenuti in un'istruzione DATA
,
si utilizza il comando READ
. Questo comando assegna i valori contenuti
in DATA
alle variabili.
È possibile utilizzare più istruzioni DATA
per riempire un array con
un set di valori. Un altro utilizzo è quello di creare piccole tabelle di
dati, ad esempio per rappresentare menu o elenchi di prodotti. È inoltre
possibile memorizzare costanti che vengono utilizzate frequentemente nel
programma.
I valori DATA
verranno letti da sinistra a destra, iniziando dalla
prima riga contenente un'istruzione DATA
. Ogni volta che viene eseguita
un'istruzione READ
, la posizione DATA
salvata dell'ultimo READ
viene avanzata al valore successivo. Le stringhe devono essere scritte
tra virgolette, quindi caratteri come virgola, spazio, due punti,
caratteri grafici o caratteri di controllo devono essere scritti tra
virgolette doppie come le costanti stringa. RESTORE
reimposta il
puntatore della posizione DATA
corrente all'avvio del programma
in modo che il successivo READ
legga dal primo DATA
trovato
dall'inizio del programma.
L'istruzione DATA
memorizza i dati numerici in modo ottimizzato:
quindi, se si immette una costante numerica che può essere rappresentata
da un singolo byte, verrà memorizzata nel programma come un singolo byte.
I numeri in virgola mobile vengono memorizzati con precisione predefinita.
Infine, le stringhe vengono memorizzate “così come sono”. Di conseguenza,
quando si usa il comando READ
, ugBASIC eseguirà implicitamente la
conversione se non viene usato lo stesso tipo di dati e se è possibile.
È possibile evitare questo comportamento usando la parola chiave AS
,
seguita dal tipo di dati.
Separa la definizione dei dati dal loro utilizzo, rende il codice più leggibile e gestibile. È possibile modificare i dati senza dover cambiare la logica del programma. Infine, gli stessi dati possono essere letti più volte in diverse parti del programma.
E' disponibile anche una versione della sintassi che permette di caricare i valori presenti in un file esterno. Questa sintassi, al momento, è limitata ai dati di tipo numerico che devono essere separati da un separatore non numerico.
DATA 10, 20, "test" DATA AS INTEGER 10, 20, 30 DATA LOAD "datas.txt" AS TEXT
Si vedano anche i seguenti file di esempio:
Da
Se si riscontra un problema nell'utilizzare questo comando, se si ritiene che vi sia un bug oppure che la spiegazione sia poco chiara, è possibile aprire una segnalazione per questa parola chiave su GitHub. Grazie!