Aller au contenu principal
Version: 20 R7 BETA

ARRAY POINTER

ARRAY POINTER ( nomTableau ; taille {; taille2} )

ParamètreTypeDescription
nomArrayArrayNom du tableau
tailleIntegerNombre d'éléments du tableau ou Nombre de tableaux si taille2 est spécifié
taille2IntegerNombre d'éléments des tableaux à deux dimensions

Description

La commande ARRAY POINTER crée ou redimensionne un tableau d'éléments de type Pointeur en mémoire.

  • Le paramètre nomTableau est le nom du tableau.
  • Le paramètre taille est le nombre d'éléments du tableau.
  • Le paramètre taille2 est optionnel. Si vous le spécifiez, cette commande crée un tableau à deux dimensions. Dans ce cas, taille spécifie le nombre de lignes et taille2 spécifie le nombre de colonnes de chaque tableau. Chaque ligne dans un tableau à deux dimensions peut être traitée à la fois comme un élément et comme un tableau. Cela signifie que vous pouvez insérer et supprimer des tableaux entiers dans un tableau à deux dimensions, par l'intermédiaire des autres commandes de ce thème, lorsque vous travaillez avec la première dimension du tableau.

Lorsque vous appliquez la commande ARRAY POINTER à un tableau existant :

  • Si vous agrandissez sa taille, les éléments existants ne sont pas modifiés, les nouveaux éléments sont initialisés à un pointeur nul (ce qui signifie que la fonction Is nil pointer appliquée à l'un de ces éléments retourne Vrai).
  • Si vous réduisez sa taille, les éléments du "bas" du tableau sont supprimés et perdus.

Exemple 1

Cet exemple crée un tableau process contenant 100 éléments de type Pointeur :

 ARRAY POINTER(tabPointeurs;100)

Exemple 2

Cet exemple crée un tableau local de 100 lignes contenant chacune 50 éléments de type Pointeur :

 ARRAY POINTER($tabPointeurs;100;50)

Exemple 3

Cet exemple crée un tableau interprocess d'éléments de type Pointeur dont la taille est égale au nombre de tables dans la base et remplit chaque élément pointant vers la table dont le numéro est le même que celui de l'élément. Dans la cas d'une table supprimée, la ligne retournera Nil.

 ARRAY POINTER(<>tabPointeurs;Lire numero derniere table)
 For($vElem;Size of array(<>tabPointeurs);1;-1)
    If(Is table number valid($vElem))
       <>tabPointeurs{$vElem}:=Table($vElem)
    End if
 End for