Syntaxe
Déclare un tableau à une ou plusieurs dimensions, dont les bornes sont incluses. UNDIM le vide.
DIM <name>(<size>[, <size>…]) [AS <type>] [= [<value>, …]]
DIM <name>[<size>[, <size>…]] [AS <type>] [= [<value>, …]]
UNDIM <name>[]S’écrit aussi : UNDIM
Les éléments
| <name> | Le nom du tableau. Un nom qui finit par $ fait partir chaque case de "" au lieu de 0. |
|---|---|
| <size> | Le dernier indice valide d'une dimension, et non le nombre de cases. N'importe quelle expression : DIM grid(width, height). |
| <type> | Facultatif. Un type de nombre ou de texte (integer, uint8, float…) convertit chaque écriture ; un type d'enregistrement fait de chaque case un enregistrement. |
| <value> | Liste facultative de valeurs de départ, entre crochets, rangées à partir de l'indice 0. Tableaux à une dimension seulement ; une liste plus longue agrandit le tableau. |
À savoir
DIM a(10)a 11 cases, numérotées de 0 à 10, comme en AGK, DarkBASIC et PureBasic.a.lengthdonne le dernier indice, 10.a(i, j),a[i, j]eta[i][j]désignent la même case.- Aucun contrôle des bornes. Lire au-delà du dernier indice ne donne aucune valeur (
Strafficheundefined) ; écrire au-delà agrandit le tableau sans prévenir. DIMsur un nom qui existe déjà crée un nouveau tableau et perd les anciennes valeurs. Pour redimensionner en gardant les valeurs, affectez.length.- Un
DIMen haut du programme est visible dans chaque FUNCTION, même dans un programme avecDO … LOOP. UnDIMdans une FUNCTION appartient à cet appel. UNDIM a()avec des parenthèses compile en un programme qui ne démarre pas. ÉcrivezUNDIM a[].GLOBAL DIM g(2)ne fonctionne pas : l'usage suivant deg(…)est refusé comme commande inconnue. Écrivez un simpleDIMen haut du programme.DIM x AS integer, sans taille, compile mais le programme ne démarre pas. Une valeur typée seule se déclare avecx AS integer.
Exemple
DIM scores(4)scores(0) = 10scores(4) = 50Console(Str(scores.length) + " " + Str(scores(0) + scores(4))) ' 4 60DIM grid(2, 3) AS integergrid(1, 2) = 7.9Console(Str(grid[1][2])) ' 7UNDIM scores[]Console(Str(scores.length)) ' -1Dans le manuel : Tableaux, listes et maps