Les tableaux et le langage 4D

4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 6.0


Les tableaux sont des variables 4D. Comme toute variable, un tableau a une portée (une aire d'action) et suit les règles du langage 4D, à certaines différences près.

Tableaux locaux, process et interprocess


Vous pouvez créer des tableaux locaux, process ou interprocess, par exemple :

   TABLEAU ENTIER ($aiCodes;100) ` Ceci crée un tableau local de 100 valeurs entières sur 2 octets
   TABLEAU ENTIER (aiCodes;100) ` Ceci crée un tableau process de 100 valeurs entières sur 2 octets
   TABLEAU ENTIER (<>aiCodes;100) ` Ceci crée un tableau interprocess de 100 valeurs entières sur 2 octets

La portée de ces tableaux est identique à celle des autres variables locales, process et interprocess.

Tableaux locaux

Vous déclarez un tableau local lorsque son nom commence par le signe dollar ($).

La portée d'un tableau local est la méthode dans laquelle il est créé. Le tableau est effacé lorsque la méthode est terminée. Des tableaux locaux de même nom peuvent avoir des types différents dans deux méthodes différentes, car ce sont en réalité des variables différentes n'ayant pas la même portée.

Lorsque vous créez un tableau local dans une méthode formulaire ou objet, ou dans une méthode projet appelée comme sous-routine par l'un des deux types de méthodes précédents, le tableau est créé puis effacé à chaque fois que la méthode formulaire ou la méthode objet est utilisée. En d'autres termes, le tableau est créé puis effacé pour chaque événement formulaire. Par conséquent, vous ne pouvez pas utiliser de tableaux locaux dans des formulaires, ni pour l'affichage ni pour l'impression.

Comme dans le cas des variables locales, il est préférable d'utiliser les tableaux locaux à chaque fois que c'est possible. Vous réduisez ainsi la quantité de mémoire nécessaire pour votre application.

Tableaux process

Vous déclarez un tableau process lorsque le nom du tableau débute par une simple lettre.

La portée d'un tableau process est le process dans lequel il a été créé. Le tableau est effacé lorsque le process se termine ou est tué. Un tableau process dispose d'une instance créée automatiquement pour chaque process. Par conséquent, le tableau est du même type pour tous les process. En revanche, son contenu est particulier à chaque process.

Tableaux interprocess

Vous déclarez un tableau interprocess lorsque son nom commence par <> (sous Windows et Mac OS) ou par le signe "diamant" (Mac OS uniquement — Option+v sur un clavier français).

La portée d'un tableau interprocess est la totalité des process pendant la session de travail. Il convient de ne les utiliser que pour partager des données ou transférer des informations entre les process.

Astuce : Quand vous savez d'avance qu'un tableau interprocess sera utilisé par plusieurs process, ce qui peut provoquer des conflits, protégez l'accès à ce tableau par un sémaphore. Pour plus d'informations, reportez-vous à l'exemple de la commande Semaphore .

Note : Vous pouvez utiliser des tableaux process et interprocess dans des formulaires pour créer des objets de formulaire tels que des zones de défilement, des listes déroulantes, etc.

Passer un tableau comme paramètre


Vous pouvez passer un tableau en tant que paramètre à une commande 4D ou à une routine d'un plug-in 4D. Cependant, vous ne pouvez pas passer un tableau comme paramètre à une méthode utilisateur. La solution dans ce cas est de passer un pointeur vers le tableau comme paramètre à cette méthode. Pour plus de détails, reportez-vous à la section Tableaux et pointeurs.

Affecter un tableau à un autre tableau


Contrairement à ce que vous pouvez faire avec des variables de type Texte ou Chaîne, vous ne pouvez pas affecter un tableau à un autre tableau. Pour copier (affecter) un tableau à un autre, utilisez la fonction COPIER TABLEAU.

Référence

Présentation des tableaux, Tableaux et pointeurs.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant