4D v16.3

Tableaux et pointeurs

Accueil

 
4D v16.3
Tableaux et pointeurs

Tableaux et pointeurs  


 

 

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.

Vous pouvez passer des tableaux interprocess, process ou locaux comme paramètres.

Voici quelques exemples.

  • Prenons le cas suivant :
 If((0<atNoms)&(atNoms<Size of array(atNoms))
  ` Si possible, sélectionner l'élément suivant l'élément sélectionné
    atNoms:=atNoms+1
 End if

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_POINTER($1)
 
 If((0<$1->)&($1-><Size of array($1->))
    $1->:=$1->+1 ` Si possible, sélectionner l'élément suivant l'élément sélectionné
 End if

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_REAL($0)
 
 $0:=0
 For($vlElem;1;Size of array($1->))
    $0:=$0+$1->{$vlElem}
 End for

Note : Depuis 4D v13, vous pouvez utiliser simplement la fonction Sum pour effectuer la somme des éléments d'un tableau numérique. 

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 )
 
 For($vlElem;1;Size of array($1->))
    If($1->{$vlElem}#"")
       $1->{$vlElem}:=Uppercase($1->{$vlElem}[[1]])+Lowercase(Substring($1->{$vlElem};2))
    End if
 End for

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.



Voir aussi  

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

 
PROPRIÉTÉS 

Produit : 4D
Thème : Tableaux

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)