SET |
Ensemble |
---|---|
Delphi/Kylix/Lazarus |
Syntaxe
Type identype=Set of typbase; |
Var identvar:Set of typbase; |
Paramètres
Nom | Description |
---|---|
identype | Ce paramètre permet d'indiquer un nom de type de données |
identvar | Ce paramètre permet d'indiquer un nom de variable |
typbase | Ce paramètre permet d'indiquer un type de base |
Description
Ce mot réservé permet de définir des ensembles.
Remarques
- Lorsqu'on utilise ce type de données, les opérateurs suivants peuvent être employé sur des opérandes de types ensembles :
Opération Description Premier opérateur Deuxième opérateur Résultat + Cet opérateur effectue une opération d'union Ensemble (Set) Ensemble (Set) Ensemble (Set) - Cet opérateur effectue une opération de différence Ensemble (Set) Ensemble (Set) Ensemble (Set) * Cet opérateur effectue une opération d'intersection Ensemble (Set) Ensemble (Set) Ensemble (Set) = Cet opérateur effectue une opération d'égalité Ensemble (Set) Ensemble (Set) Booléen <> Cet opérateur effectue une opération de différence Ensemble (Set) Ensemble (Set) Booléen <= Cet opérateur effectue une opération de inclus Ensemble (Set) Ensemble (Set) Booléen >= Cet opérateur effectue une opération de comprend Ensemble (Set) Ensemble (Set) Booléen In Cet opérateur effectue une opération de appartient Ensemble (Set) Ensemble (Set) Booléen
- Un type Set est défini en termes d'un type de base, devant être un type ordinal : énumération, entier ou caractère. Le Delphi met en oeuvre le type Set en utilisant un masque de bits, où chaque membre du type de base se voit attribuer un bit correspondant dans le type Set. Les types Set sont limités à 256 éléments, et les valeurs ordinales du type de base sont également limitées à l'intervalle de 0 à 255.
- Le masque de bits de l'ensemble est entreposé sous forme de tableau d'octets. La valeur ordinale d'un membre d'ensemble détermine quel bit d'octets le membre occupe : la valeur ordinale 0 est le bit le moins significatif dont le membre occupe : la valeur ordinale 0 est l'octet. L'entreposage d'un ensemble n'inclut pas les octets n'ayant pas de membres, mais si un octet contient au moins un membre, l'ensemble inclut l'octet entier. La représentation d'un ensemble garantit que les mêmes valeurs ordinales occupent toujours la même position de bit, quel que soit le type réel de l'ensemble. Par exemple, set of 5..10 occupe 2 octets. Le premier octet entrepose les membres 5..7 aux bits 5 à 7 et l'octet suivant entrepose les membres 8..10 aux bits 0 à 2.
- Les Set (ensembles) sont souvent plus faciles à utiliser que les masques de bits.
- Les programmeurs arrivant à Delphi depuis d'autres langages ne sont pas habitués aux opérateurs Set de Pascal.
- Vous pouvez taper convertir un petit ensemble en un masque de bits entier. La conversion de type utilise un type entier de la même taille que l'ensemble. Pour typer un style de police de caractères, par exemple, utilisez Byte (Font.Style). Utilisez Word pour un ensemble avec jusqu'à 16 membres et LongWord pour des ensembles jusqu'à 32 membres.
Exemple
Voici quelques exemples de l'utilisation de ce mot réservé :
- Program SetSamples;
-
- {$APPTYPE CONSOLE}
-
- Uses SysUtils;
-
- Var
- RegistreIntel8088:Set of (AH,AL,AX,BH,BL,BP,BX,CH,CL,CS,CX,DH,DL,DS,DX,ES,SI);
- Alphabet:Set Of 'A'..'Z';
- Centieme:Set of 0..99;
- Caractere:Set Of Char;
- C:Char;
-
- BEGIN
- RegistreIntel8088:=[AL,AH,BL,BH,CL,CH,DL,DH];
- Alphabet:=['A','E','I','O','U','Y'];
- Write('Voyelle = ');
- For C:='A' to 'Z' do If C In Alphabet Then Write(C);
- WriteLn;
- Caractere:=['0'..'9','A'..'F'];
- Write('Hexadecimal = ');
- For C:=#0 to #255 do If C In Caractere Then Write(C);
- WriteLn;
- END.
on obtiendra le résultat suivant :
Voyelle = AEIOUYHexadecimal = 0123456789ABCDEF
Voir également
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Exclude
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - In
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Include
Dernière mise à jour : Mercredi, le 18 février 2015