Syntaxe
Lit la taille d'un tableau, le redimensionne, insère, retire, cherche et trie des cases, par des membres écrits après un point.
<array>.length
<array>.length = <last>
<array>.insert(<value>[, <index>])
<array>.remove([<index>])
<array>.find(<value>)
<array>.sort()
UNDIM <array>[]S’écrit aussi : .length, .remove, .find, .sort
Les éléments
| <array> | Un tableau issu de DIM ou de AS <type>[], ou un champ tableau d'un enregistrement (bag.names). |
|---|---|
| <last> | Le nouveau dernier indice. Les cases gardées gardent leur valeur ; les nouvelles reçoivent la valeur par défaut du tableau. -1 vide le tableau. |
| <value> | Pour .insert, la valeur à ajouter. Pour .find, la valeur cherchée, comparée strictement : "2" ne trouve pas le nombre 2. |
| <index> | Position facultative. .insert y place la valeur et décale la suite ; sans elle, à la fin. .remove supprime cette case ; sans elle, la dernière. |
À savoir
.lengthest le dernier indice, pas le nombre de cases : ce nombre vauta.length + 1, et un tableau vide donne -1. Sur une grille,g.lengthest le dernier indice de la première dimension,g[0].lengthcelui de la seconde..findrenvoie l'indice de la première case égale, ou -1. Il parcourt tout le tableau, trié ou non..insert,.removeet.length = nsont des instructions seules sur leur ligne : elles ne renvoient rien, etx = a.insert(5)arrête le programme..sorttrie sur place, du plus petit au plus grand. Les textes se comparent par code de caractère : toute majuscule passe avant toute minuscule. Un tableau d'enregistrements est trié sur son premier champ..insertne convertit pas la valeur dans le type du tableau : surDIM a(0) AS integer,a.insert(2.7)range 2.7. Affectez ensuite la case (a(1) = 2.7range 2) pour obtenir la conversion..length = nsur une grille ajoute de simples cases à 0, pas des lignes : les écritures dans ces nouvelles lignes sont perdues. Redéclarez plutôt la grille avecDIM.UNDIM a()compile en un programme qui ne démarre pas. ÉcrivezUNDIM a[].
Exemple
DIM a(2) = [30, 10, 20]a.insert(5)a.insert(99, 0)Console(Str(a.length)) ' 4a.remove()a.remove(0)a.sort()Console(Str(a(0)) + " " + Str(a(1)) + " " + Str(a(2))) ' 10 20 30Console(Str(a.find(20)) + " " + Str(a.find(42))) ' 1 -1a.length = 4Console(Str(a.length) + " " + Str(a(4))) ' 4 0UNDIM a[]Console(Str(a.length)) ' -1Dans le manuel : Tableaux, listes et maps