How READ...DATA work
Posted: Mon Oct 30, 2023 6:32 pm
[italian and french follow]
Starting from the next version, the READ...DATA functionality will be made available. This is a very interesting element of the language, because it allows you to store data in the program space, and access it sequentially or randomly, without consuming precious memory, such as that of strings. The syntax is the same as available on many BASIC languages:
where c1, c2, ... are the constants you want to insert. The constants can be integer numbers, floating point numbers or strings: ugBASIC will take care of storing them in the most efficient way possible. It will then be possible to read the values with the READ command:
The language will try, where possible, to convert the constant into the type of the variable. This mode is obviously "slow" although safe. However, it will also be possible to use a second, faster mode: it is called READ FAST and can only be used if the data is stored in the same format. This can be achieved with the command DATA AS type c1, c2, c3, ..., i.e.:
In order to make the best use of this mode, it is essential to use the RESTORE command and the READ END function: the first allows you to indicate where to start reading the data, while the second indicates if the data has ended.
ITALIAN
A partire dalla prossima versione, sarà resa disponibile la funzionalità di READ...DATA. Questo è un elemento del linguaggio molto interessante, perché permette di memorizzare dati nello spazio del programma, e accedervi in modo sequenziale o casuale, senza per questo consumare preziosa memoria, come quella delle stringhe. La sintassi è la stessa disponibile su molti linguaggi BASIC:
dove c1, c2, ... sono le costanti che si vogliono inserire. Le costanti possono essere numeri interi, a virgola mobile o stringa: ci penserà ugBASIC a stoccarle nel modo più efficiente possibile. Sarà quindi possibile leggere i valori con il comando READ:
Il linguaggio cercherà, dove possibile, di convertire la costante nel tipo della variabile. Questa modalità è ovviamente "lenta" seppur sicura.
Sarà però possibile utilizzare anche una seconda modalità, più veloce: si chiama READ FAST e la si può utilizzare solo se il dato viene memorizzato nel medesimo formato. Questo lo si può ottenere con la sintassi: DATA AS type c1, c2, c3, ..., esempio:
Per poter utilizzare al meglio questa modalità, è essenziale usare il comando RESTORE e la funzione READ END: il primo permette di indicare da dove iniziare a leggere i dati, mentre il secondo se i dati sono terminati.
FRENCH
À partir de la prochaine version, la fonctionnalité READ...DATA sera rendue disponible. C'est un élément très intéressant du langage, car il permet de stocker des données dans l'espace programme, et d'y accéder de manière séquentielle ou aléatoire, sans consommer une mémoire précieuse, comme celle des chaînes. La syntaxe est la même que celle disponible dans de nombreux langages BASIC :
où c1, c2, ... sont les constantes que vous souhaitez insérer. Les constantes peuvent être des nombres entiers, des nombres à virgule flottante ou des chaînes : ugBASIC se chargera de les stocker de la manière la plus efficace possible. Il sera alors possible de lire les valeurs avec la commande READ :
Le langage tentera, lorsque cela est possible, de convertir la constante en type de variable. Ce mode est évidemment « lent » bien que sécurisé. Cependant, il sera également possible d'utiliser un deuxième mode, plus rapide : il s'appelle READ FAST et ne peut être utilisé que si les données sont stockées dans le même format. Ceci peut être réalisé avec la commande DATA AS type c1, c2, c3, ..., exemple:
Afin d'utiliser au mieux ce mode, il est indispensable d'utiliser la commande RESTORE et la fonction READ END : la première permet d'indiquer par où commencer la lecture du données, tandis que le second indique si les données sont terminées.
Starting from the next version, the READ...DATA functionality will be made available. This is a very interesting element of the language, because it allows you to store data in the program space, and access it sequentially or randomly, without consuming precious memory, such as that of strings. The syntax is the same as available on many BASIC languages:
Code: Select all
DATA c1, c2, c3, ..., cn
Code: Select all
READ x, y, z, ...
Code: Select all
DATA AS POSITION 100, 100, 200, 200
ITALIAN
A partire dalla prossima versione, sarà resa disponibile la funzionalità di READ...DATA. Questo è un elemento del linguaggio molto interessante, perché permette di memorizzare dati nello spazio del programma, e accedervi in modo sequenziale o casuale, senza per questo consumare preziosa memoria, come quella delle stringhe. La sintassi è la stessa disponibile su molti linguaggi BASIC:
Code: Select all
DATA c1, c2, c3, ..., cn
Code: Select all
READ x, y, z, ...
Sarà però possibile utilizzare anche una seconda modalità, più veloce: si chiama READ FAST e la si può utilizzare solo se il dato viene memorizzato nel medesimo formato. Questo lo si può ottenere con la sintassi: DATA AS type c1, c2, c3, ..., esempio:
Code: Select all
DATA AS POSITION 100, 100, 200, 200
FRENCH
À partir de la prochaine version, la fonctionnalité READ...DATA sera rendue disponible. C'est un élément très intéressant du langage, car il permet de stocker des données dans l'espace programme, et d'y accéder de manière séquentielle ou aléatoire, sans consommer une mémoire précieuse, comme celle des chaînes. La syntaxe est la même que celle disponible dans de nombreux langages BASIC :
Code: Select all
DATA c1, c2, c3, ..., cn
Code: Select all
READ x, y, z, ...
Code: Select all
DATA AS POSITION 100, 100, 200, 200