Syntaxe
Écrit des valeurs constantes dans une DATASECTION. READ les prend une à une, dans l'ordre ; RESTORE déplace la position de lecture.
DATASECTION
DATA SECTION
[<label>:]
DATA[.<type>] <literal>[, <literal>…]
ENDDATASECTION
END DATASECTION
END DATA SECTION
READ[.<type>] <target>
RESTORE [<label>]S’écrit aussi : DATASECTION, ENDDATASECTION, READ, RESTORE
Les éléments
| <label> | Un nom suivi de : dans la section. RESTORE seul revient à la première valeur ; RESTORE <label> à la première valeur après l'étiquette. Les étiquettes ignorent la casse. |
|---|---|
| <type> | Un type par ligne DATA : aucun ou .i (aussi .l .q .w .b .a .u .c) pour des entiers, .f ou .d pour des décimaux, .s pour des textes. Sur READ, il fixe ce qu'on lit. |
| <literal> | Une valeur littérale : un nombre (négatif, décimal, %1010, 0c12, 0x10, 1.25e2), TRUE ou FALSE, ou un texte entre guillemets sur une ligne .s. |
| <target> | Où va la valeur : une variable, une case de tableau (a(1) ou a[1]), ou un champ (p.x). |
À savoir
- Sans
READ.<type>, la nature vient du sigil de la cible :$lit un texte,#un décimal, sans sigil un entier. Lire un entier sur 2.9 donne 2. DATAn'est admis que dans uneDATASECTION. La section n'est pas exécutée : placez-la en haut ou en bas du programme.DATA 1 + 2, et un texte sur une ligne sans.s, sont des erreurs de compilation. Une étiquette inconnue aprèsRESTOREaussi.- Un type qui ne correspond pas arrête le programme (
BASIC READ type does not match DATA), de même que lire après la dernière valeur (BASIC READ reached the end of DATA). READ a, bcompile en un programme qui ne démarre pas. Une seule cible par ligneREAD.- Une étiquette de données n'est pas une étiquette de GOSUB :
GOSUBne peut pas l'atteindre. AGK n'a pas de DATA ; aukimi suit laDataSectiontypée de PureBasic.
Exemple
RESTORE LevelsREAD countFOR i = 1 TO count READ name$ READ.f speed# Console(name$ + " " + Str(speed#)) ' Forest 1.5, then Cave 2.25NEXTRESTOREREAD firstConsole(Str(first)) ' 99DATASECTION DATA 99 Levels: DATA 2 DATA.s "Forest" DATA.f 1.5 DATA.s "Cave" DATA.f 2.25ENDDATASECTIONDans le manuel : Tableaux, listes et maps