|
|
|
|
|
- Déclaration de structures
- Type des membres d'une structure
- Déclarer un membre de type tableau dans une structure
- Copie homonymique d'une structure
- Sérialisation des membres d'une structure
- Quels types "avancés" peuvent être membre ?
- Passer une structure en paramètre à une procédure
- Ajouter le contenu d'une structure dans un tableau de structures sans passer par une variable de cette structure
- Limites d'une structure
- Différences entre la version 8 et la version 9
Structure (Type de variable) En anglais : Structure (Type of variable)
Une structure est un type de données personnalisé. Une structure regroupe des éléments de types différents. Remarque : Si vous manipulez des variables personnalisées, il est conseillé de déclarer : - un type structure, si plusieurs variables de ce type sont utilisées dans différents traitements du projet.
- une variable composée, si une seule variable de ce type est utilisée dans votre projet (par exemple utilisation ponctuelle pour passer des paramètres à une API).
RefProduit est une Structure
CodeF est un entier
CodePr est une chaîne fixe sur 10
FIN
RefProduit est une Structure
CodeF est un entier
CodePr est une chaîne fixe sur 10
FIN
Fauteuil est une RefProduit
RefProduit est une Structure
CodeF est un entier
CodePr est une chaîne fixe sur 10
FIN
Fauteuil est une RefProduit
Fauteuil:CodeF = 7
Fauteuil:CodePr = "Meuble"
point3D est une Structure
x est un entier
y est un entier
z est un entier
FIN
p1 est un point3D = [0, 0, 50]
Syntaxe
Déclarer une structure Masquer les détails
<Nom de la structure> est une structure <Membres de la structure> FIN
<Nom de la structure> : Nom de la structure à déclarer <Membres de la structure> : Déclarations des variables contenues dans la structure. Ces variables sont appelées les membres de la structure.Lors de la déclaration des membres de la structure, il est possible d'indiquer les paramètres de sérialisation de ces membres. Pour plus de détails, consultez le paragraphe "Sérialisation des membres d'une structure". <FIN> : Fin de déclaration des variables.
Déclarer une variable de type structure Masquer les détails
<Nom de la variable> est une <Nom de la structure>
<Nom de la variable> : Nom de la variable de type structure à déclarer. <Nom de la structure> : Nom d'une structure précédemment déclarée.
Manipuler un membre d'une variable de type structure Masquer les détails
<Nom de la variable structure>:<Nom du membre de la structure>
<Nom de la variable structure> : Nom de la variable structure à manipuler. <Nom du membre de la structure> : Nom du membre de la structure à manipuler. Remarques Déclaration de structures Si une structure <Nom de la structure> est déclarée : - dans le code du projet, il sera possible de déclarer une variable du type <Nom de la structure> dans l'ensemble du projet.
- dans le code de déclaration des globales d'une fenêtre, il sera possible de déclarer une variable du type <Nom de la structure> dans cette fenêtre, dans les champs de cette fenêtre et dans les procédures locales associées.
- dans le code d'ouverture d'un état, il sera possible de déclarer une variable du type <Nom de la structure> dans cet état, dans les champs de cet état et dans les procédures locales associées.
- dans le code de déclaration d'une classe, il sera possible de déclarer une variable du type <Nom de la structure> dans cette classe et dans les méthodes de cette classe. Attention : il est nécessaire de placer "Est une structure" avant le "est une classe".
- dans un traitement, il sera possible de déclarer une variable du type <Nom de la structure> dans ce traitement.
Type des membres d'une structure Les membres d'une structure peuvent être de type : Tous les autres types de données (variable composée, constante, ...) sont interdits. Déclarer un membre de type tableau dans une structure - Déclarer un membre de type tableau simple :
Les dimensions du tableau sont fixées dès la déclaration. Il est possible de modifier les dimensions du tableau avec la fonction Dimension. - Déclarer un membre de type tableau dynamique :
Il est nécessaire de définir les dimensions du tableau (c'est-à -dire d'allouer le tableau) avant d'utiliser le tableau. Par exemple :
Struct est une Structure
x1 est un entier
x2 est un tableau dynamique
FIN
MaStruct est une Struct
MaStruct:x2 = allouer un tableau dynamique de 4,7 entiers
MaStruct:x2[1,1] = 25
Copie homonymique d'une structure L'opérateur => permet de réaliser une copie homonymique d'une variable de type structure. Cette copie homonymique est également réalisée en utilisant l'opérateur =. Attention, la copie s'effectue membre à membre : seuls les membres de même nom seront copiés. Les membres de noms différents ou inexistants seront ignorés. Exemple :
StructClientImport est une Structure
Nom est une chaîne
Prénom est une chaîne
Société est une chaîne
Adresse est une chaîne
CP est une chaîne
Ville est une chaîne
FIN
StructClientInterne est une Structure
Nom est une chaîne
Prénom est une chaîne
Société est une chaîne
Adresse est une chaîne
AdresseComp est une chaîne
CP est une chaîne
Ville est une chaîne
Pays est une chaîne
FIN
NouveauClient est un StructClientImport
ClientEnCours est un StructClientInterne
ClientEnCours = NouveauClient
Sérialisation des membres d'une structure Par défaut, tous les membres d'une structure sont sérialisés. Il est possible de gérer précisément la sérialisation de chaque membre d'une structure : - en indiquant quel membre sera sérialisé lors de l'appel à la fonction Sérialise.
Cette opération est possible sur tous les types de sérialisation (WXML, JSON, binaire). - en changeant le nom du membre lors de la sérialisation par la fonction Sérialise.
Cette opération n'est pas possible lors d'une sérialisation binaire.
Cette gestion de la sérialisation est réalisée en utilisant la syntaxe suivante : - Sérialisation ou non d'un membre :
<Nom du membre> est un <Type du membre> [, Sérialise = <Vrai / Faux>] - Sérialisation et changement du nom d'un membre :
<Nom du membre> est un <Type du membre> [, Sérialise = <Nouveau nom>]
Exemple :
Cl est une Structure
MembreSérialisé est un entier
MembreNonSérialisé est une chaîne, sérialise = faux
MembreRenommé est un entier, sérialise = "NouveauNomMembre"
FIN
Quels types "avancés" peuvent être membre ? Une variable "avancée" peut être membre d'une variable "avancée". Le tableau ci-dessous présente les différentes combinaisons : | | | | | | Variable composée | Structure | Classe | Tableau |
---|
Variable composée | Non | Non | Non | Non | Structure | Oui | Oui | Oui | Oui | Classe | Oui | Oui | Oui | Oui | Tableau | Oui | Oui | Oui | Non |
Passer une structure en paramètre à une procédure Une variable de type "structure" peut être passée en paramètre à une procédure. Pour cela, utilisez la syntaxe suivante : <Nom de la procédure>(<Nom de la variable de type structure>) Par exemple :
RefProduit est une Structure
CodeF est un entier
CodePr est une chaîne fixe sur 10
FIN
Fauteuil est une RefProduit
AfficheProduit(Fauteuil)
Ajouter le contenu d'une structure dans un tableau de structures sans passer par une variable de cette structure Si vous utilisez un tableau de structures avec peu de membres, il peut être plus simple d'ajouter directement une structure en utilisant l'opérateur [ ] (crochet). Par exemple, pour la structure suivante :
STTouche est une Structure
sTouche est une chaîne
nCodeAscii est un entier
FIN
tabTouches est un tableau de STTouche
L'ajout se fait généralement en passant par une variable du type de la structure :
stUneTouche est un STTouche
stUneTouche.sTouche = "A"
stUneTouche.nCodeAscii = Asc("A")
tabTouches.Ajoute(stUneTouche)
Avec l'opérateur [ ], vous pouvez gagner en visibilité :
tabTouches.Ajoute(["A", Asc("A")])
Limites d'une structure - L'héritage de structure est interdit : une structure ne peut pas hériter d'une autre structure.
- Il n'est pas possible de restreindre l'accès à un membre d'une structure : tous les membres d'une structure sont publics.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|