DATA c1[, c2[, c3[, ...]]] DATA AS type c1[, c2[, c3[, ...]]]
Il comando DATA
viene utilizzato per memorizzare informazioni costanti
nel codice del programma e viene utilizzato con il comando BASIC READ
.
Ogni riga DATA
può contenere una o più costanti separate da virgole.
Le espressioni contenenti variabili non verranno valutate.
L'istruzione memorizza i dati numerici in modo ottimizzato: quindi, se
si inserisce una costante numerica che può essere rappresentata da un
singolo byte, così sarà memorizzata nel programma. I numeri in virgola
mobile sono memorizzati secondo la precisione di default. Infine, le stringhe
sono memorizzate “as is”. Ne consegue che, quando si utilizzerà il comando
READ
, ugBASIC effettuerà implicitamente la conversione laddove
non si utilizzi lo stesso tipo di dato, laddove possibile. Si può evitare
l'ottimizzazione utilizzando la parola chiave AS con il tipo di dato.
I valori DATA
verranno letti da sinistra a destra, iniziando con la
prima riga contenente un'istruzione DATA
. Ogni volta che viene eseguita
un'istruzione READ
, la posizione DATA
salvata dell'ultima 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 di stringa. Il RESTORE
reimposta il puntatore della posizione corrente
dei DATA
all'inizio del programma in modo che il successivo READ
leggerà
dal primo DATA
trovato dall'inizio del programma.
Nel caso in cui READ
utilizzi il tipo di variabile sbagliato, la variabile
non verrà toccata e il puntatore verrà lasciato nella posizione corrente.
Non esiste un modo semplice per ottenere la posizione dell'istruzione READ
che è la vera origine della mancata corrispondenza.
Le righe DATA
possono essere sparse nell'intero codice del programma.
DATA 10, 20, "test" DATA AS INTEGER 10, 20, 30
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!