Tableaux et pointeurs

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 6.0


Vous pouvez passer un tableau comme paramètre à une commande 4D ou à une routine d'un Plug-in 4D. Cependant, vous ne pouvez pas passer un tableau comme paramètre dans une méthode utilisateur. La solution consiste à passer un pointeur vers le tableau comme paramètre de la méthode.

Note : Vous pouvez passer des tableaux process et des tableaux interprocess comme paramètres, mais pas des tableaux locaux.

Voici quelques exemples.

Prenons le cas suivant :

   Si ((0<atNoms)&(atNoms<Taille tableau(atNoms))
         ` Si possible, sélectionner l'élément suivant l'élément sélectionné
      atNoms:=atNoms+1 
   Fin de si

Si vous avez besoin de faire la même chose pour 50 tableaux différents, vous pouvez vous éviter d'écrire 50 fois la même chose, en utilisant la méthode projet suivante:

      ` Méthode projet SELECTIONNER ELEMENT SUIVANT
      ` SELECTIONNER ELEMENT SUIVANT ( Pointeur )
      ` SELECTIONNER ELEMENT SUIVANT ( -> Tableau )

   C_POINTEUR ($1)

   Si ((0<$1->)&($1-><Taille tableau($1->))
      $1->:=$1->+1 ` Si possible, sélectionner l'élément suivant l'élément sélectionné
   Fin de si

Ensuite, vous pouvez écrire :

   SELECTIONNER ELEMENT SUIVANT (->atNoms)
      ` ...
   SELECTIONNER ELEMENT SUIVANT (->asCodesPostaux)
      ` ...
   SELECTIONNER ELEMENT SUIVANT (->alEnrgsIDs)
      ` ... et ainsi de suite.

La méthode projet suivante retourne la somme de tous les éléments d'un tableau numérique (Entier, Entier long, ou Réel) :

      ` Somme Tableau
      ` Somme Tableau ( Pointeur )
      ` Somme Tableau ( -> Tableau )

   C_REEL ($0)

   $0:=0
   Boucle ($vlElem;1;Taille tableau($1->))
      $0:=$0+$1->{$vlElem} 
   Fin de boucle

Ensuite, vous pouvez écrire :

   $vlSomme:=Somme Tableau (->arSalaires)
      ` ...
   $vlSomme:=Somme Tableau (->aiDefectCounts)
      ` ..
   $vlSomme:=Somme Tableau (->alPopulations)

La méthode projet qui suit met une majuscule à tous les éléments d'un tableau Alpha ou Texte :

      ` MAJUSCULE TABLEAU
      ` MAJUSCULE TABLEAU ( Pointeur )
      ` MAJUSCULE TABLEAU ( -> Tableau )

   Boucle ($vlElem;1;Taille tableau($1->))
      Si ($1->{$vlElem} #"")
         $1->{$vlElem} :=Majusc($1->{$vlElem} [[1]])+Minusc(Sous chaine($1->{$vlElem} ;2))
      Fin de si
   Fin de boucle

Ensuite, vous pouvez écrire :

   MAJUSCULE TABLEAU (->atSujets )
      ` ...
   MAJUSCULE TABLEAU (->asNomsFamille )

La combinaison de tableaux, pointeurs et de boucles telles que Boucle...Fin de boucle vous permet d'écrire un grand nombre de petites méthodes projet très utiles pour gérer les tableaux.

Référence

Les tableaux et le langage 4D, Présentation des tableaux.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant