Dim


Syntax
Dim nom.<type>(<expression>, [<expression>], ...)
Description
Dim est utilisé pour dimensionner un nouveau tableau. Un tableau peut être composé d'éléments de type quelconque connu sous PureBasic, incluant les structures et les types définis par l'utilisateur (Attention : les éléments d'un tableau sont tous de même type). Une fois le tableau créé il peut être redimensionné mais son contenu sera alors effacé, sauf si ReDim est utilisé. Les tableaux sont alloués dynamiquement ce qui signifie que le dimensionnement peut se faire à partir d'une variable ou d'une expression.

Les tableaux sont toujours locaux par défaut, donc pour accéder à partir d'une procedure à un tableau défini dans le code source principal du programme, l'utilisation de Global ou Shared est requise. Il est également possible de passer un tableau en paramètre d'une procédure à l'aide du mot clef Array. Il sera passé "par référence" (ce qui signifie que le tableau ne sera pas copié, et les fonctions dans la procédure manipulerons le tableau original).

Pour effacer le contenu complet d'un tableau et libérer la mémoire qu'il occupe, appelez Dim avec 0 élément.

Utilisez la commande Swap Pour permuter le contenu de tableaux rapidement.

Note: La vérification des accès à un tableau est effectuée uniquement quand le débogueur est activé.

Exemple:

  Dim MonTableau.l(41)
  MonTableau(0) = 1
  MonTableau(1) = 2 

Exemple: Tableau à dimensions multiples

  Dim TableauMultiple.b(NbColonnes, NbLignes)
  TableauMultiple(10, 20) = 10
  TableauMultiple(20, 30) = 20

Exemple: Tableau en paramètre d'une procédure

  Procedure fill(Array A.l(1), longueur)  ; Le 1 représente le nombre de dimensions du tableau
    For i = 0 To longueur
      A(i) = i
    Next i
  EndProcedure
  
  Dim A.l(10)
  fill(A(), 10)  ; Le tableau A() est passé en paramètre
  
  Debug A(5)
  Debug A(10)

Syntax
ReDim nom.<type>(<expression>, [<expression>], ...) 
Description
ReDim permet de redimensionner un tableau déjà déclaré tout en préservant son contenu. La nouvelle taille peut être plus grande ou plus petite, mais le nombre de dimensions ne peut pas être modifié.

Si ReDim est utilisé sur un tableau à plusieurs dimensions, seule la dernière dimension peut être changée.

Exemple:

  Dim MyArray.l(1) ; nous avons 2 éléments
  MyArray(0) = 1
  MyArray(1) = 2
  
  ReDim MyArray(4) ; Maintenant nous avons 5 éléments
  MyArray(2) = 3
  
  For k = 0 To 2
    Debug MyArray(k)
  Next

Syntax
ArraySize(Array() [, Dimension]) 
Description
Renvoie la taille du tableau Array(), tel qu'indiqué avec les commandes Dim ou ReDim. Pour les tableaux multidimentionnels, Le paramètre optionnel 'Dimension' peut être utilisé pour obtenir la taille d'une dimension spécifique. Le numéro de la première dimension commence à 1.

Exemple:

  Dim MyArray.l(10)
  Debug ArraySize(MyArray()) ; Affichera '10'

  Dim MultiArray.l(10, 20, 30)
  Debug ArraySize(MultiArray(), 2) ; Affichera '20'