DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Déclaration des variables
  • Présentation
  • Affectation multiple des tableaux
  • Syntaxe
  • Tableau de valeurs
  • Exemples
  • Affectation multiple des tableaux associatifs
  • Syntaxe
  • Exemple
  • Affectation multiple des structures et classes
  • Syntaxe
  • Remarques
  • Exemple
  • Imbrication
  • Césure
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
L'affectation multiple des tableaux consiste à pouvoir affecter une série de valeurs de type simple (booléens, entiers, chaînes, réels, numériques, monétaires) aux cases d'un tableau.
Cette affectation multiple est également disponible pour les structures et les classes.
Affectation multiple des tableaux

Syntaxe

  • Tableau à 1 dimension :
    <Tableau à 1 dimension> = [ <Valeur 1>, <Valeur 2>, ...]
  • Tableau à 2 dimensions :
    <Tableau à 2 dimensions> = [ [ <Valeur 1 1>, <Valeur 1 2>, ...],
    [ <Valeur 2 1>, <Valeur 2 2>, ...],
    ...
    ]
  • Tableau à 3 dimensions :
    <Tableau à 3 dimensions> = [ [ [ <Valeur 1 1 1>, <Valeur 1 1 2>, ...],
    [ <Valeur 1 2 1>, <Valeur 1 2 2>, ...], ... ],
    [ [ <Valeur 2 1 1>, <Valeur 2 1 2>;, ...],
    [ <Valeur 2 2 1>, <Valeur 2 2 2>, ...], ... ],
    ...
    ]

Tableau de valeurs

Chaque série de valeurs représente une dimension du tableau de valeurs. Il est possible d'imbriquer des séries de valeurs pour créer un tableau de valeurs à plusieurs dimensions.
Les nombres de dimensions du tableau de valeurs doivent être cohérents : chaque dimension doit avoir le même nombre de sous-dimensions. Cependant, il est possible d'avoir un nombre d'éléments différent pour chaque dimension.
Exemples :
// Tableau de valeurs interdit :
// La première valeur de la série possède une sous-dimension
// La seconde valeur de la série ne possède pas de sous-dimension
[[ <Valeur 1 1>, <Valeur 1 2> ], <Valeur 2> ]
// Tableau de valeurs autorisé :
// Toutes les valeurs de la série possèdent une sous-dimension
// Chaque sous-dimension a un nombre différent d'éléments
[[ <Valeur 1 1>, [ <Valeur 2 1>, <Valeur 2 2>, <Valeur 2 3> ],
[<Valeur 3 1>, <Valeur 3 2> ]]
Les dimensions du tableau de valeurs doivent correspondre aux dimensions du tableau à affecter.
Si les dimensions du tableau à affecter sont insuffisantes pour stocker les éléments du tableau de valeurs, le tableau à affecter est automatiquement agrandi.
Dans le cas d'un tableau fixe, si les dimensions du tableau à affecter sont insuffisantes pour stocker les éléments du tableau de valeurs, le tableau de valeurs est tronqué.
Si les dimensions du tableau à affecter sont plus grandes que celles du tableau de valeurs, les éléments non affectés conservent leurs valeurs précédentes.

Exemples

// Tableau des puissances de 2
Puissance2 est un tableau de 0 entiers
Puissance2 = [1, 2, 4, 8, 16, 32, 64, 128, 256]
// Tableau des nombres de jours par mois
// Ligne 1 : année non bissextile
// Ligne 2 : année bissextile
NombreJours est un tableau de 2 par 12 entiers
NombreJours = [[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
[31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]]
Affectation multiple des tableaux associatifs

Syntaxe

<Tableau associatif> = [ [ <Clé1>, <Valeur1> ],
[ <Clé2>, <Valeur2> ],
...
]
Le tableau de valeurs ne doit comporter que 2 couples (Clé, Valeur).
Chaque couple est affecté au tableau associatif en utilisant l'équivalent de la syntaxe : TableauAssociatif[Clé] = Valeur.
Pour un tableau associatif sans doublons :
  • Si la clé n'existe pas encore, la valeur est ajoutée.
  • Si la clé existe déjà, la valeur est modifiée.
Pour un tableau associatif avec doublons, toutes les valeurs sont ajoutées.

Exemple

// Tableau associatif des acronymes de pays
Pays est un tableau associatif de chaînes
Pays = [["FR", "France"], ["US", "Etats-Unis"], ["DE", "Allemagne"]]
Affectation multiple des structures et classes

Syntaxe

  • Structure :
    <Instance structure> = [ <Membre 1>, <Membre 2>, ...]
  • Classe :
    <Instance Classe> = [ <Membre 1>, <Membre 2>, ...]

Remarques

  • Les membres sont affectés dans l'ordre de déclaration.
  • Dans le cas des classes, les héritages sont ignorés : ce sont les membres de la classe qui sont directement affectés.
  • Limitation : cette syntaxe ne fonctionne pas sur les structures et les classes dynamiques.

Exemple

Département est une Structure
Nom est une chaîne
Numéro est un entier
Préfecture est une chaîne
FIN
 
Allier est un Département = ["Allier", 3, "Moulins"]
Imbrication
Il est possible d'utiliser les syntaxes d'affectation multiple sur des tableaux de structures, des instances de structures contenant des tableaux, ...
Département est une Structure
Nom est une chaîne
Numéro est un entier
Préfecture est une chaîne
FIN
 
TabDépartement est un tableau de 0 Département
TabDépartement = [["Ain", 1, "Bourg-en-Bresse"],
["Aisne", 2, "Laon"],
["Allier", 3, "Moulins"]]
 
TabNomDépartement est un tableau associatif de Département
TabNomDépartement = [["Ain", ["Ain", 1, "Bourg-en-Bresse"]],
["Aisne", ["Aisne", 2, "Laon"]],
["Allier", ["Allier", 3, "Moulins"]]]
Césure
Il est possible de décrire les tableaux de valeurs avec des passages à la ligne sans utiliser la syntaxe de césure (... triple point).
La syntaxe de césure est cependant indispensable pour passer à la ligne après le premier crochet ouvrant. Par exemple :
Département est une Structure
Nom est une chaîne
Numéro est un entier
Préfecture est une chaîne
FIN
 
Allier est un Département = [...
"Allier", 3, "Moulins"]
Il est également possible de laisser une virgule avant un crochet fermant :
NombreJours = [[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
[31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
]
Version minimum requise
  • Version 11
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale