Quelqu'un connait-il la commande pour récupérer la 1° valeur d'un set of ?
ex : [_A, _B, _C]
je veux récupérer _A, comment faire ?
Version imprimable
Quelqu'un connait-il la commande pour récupérer la 1° valeur d'un set of ?
ex : [_A, _B, _C]
je veux récupérer _A, comment faire ?
Salut,
Je ne pense pas que "set of" soit à utiliser dans ce sens...Il permet plutôt de tester si un élément appartient à un ensemble.
trouvé sur http://cyberzoide.developpez.com/info/turbo/chap25.php3Citation:
Les ensembles de sont pas ordonnés. Donc il n'existe pas d'ordre d'apparition des éléments dans une variable ensemble. On peut tout juste être capable de comparer le contenu de deux ensembles de même type, et de déterminer si un élément est inclu ou non dans un ensemble. De plus, un même élément n'apparaît qu'une seule fois dans un ensemble. Et il n'existe pas de fonction qui renvoit le nombre d'éléments d'un ensemble.
Pour récupérer un élément donné, j'utiliserais plutôt un tableau ou une TList. Maintenant si tu nous dis ce que tu souhaite faire exactement, on pourra sûrement trouver une solution adaptée.
A+.
Ta réponse me suffit, je vais me débrouiller.
:king: MERCI BEAUCOUP POUR TON AIDE
Tient, si cela interesse quelqu'un une fonctionne qui compte le nombre d'item activé ...
utilisationCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 function SizeOfSetShai(PSet: pointer; SizeOfSet: Byte = 32): Integer; type PHashSet = ^THashSet; THashSet = array [0..31] of Byte; var i, vHS: Byte; pHS: PHashSet; begin Result := 0; pHS := PSet; for i := 0 to SizeOfSet-1 do begin vHS := pHS^[i] and $0F; if vHS > 0 then begin if (vHS = 1) or (vHS = 2) or (vHS = 4) or (vHS = 8) then Inc(Result) else if (vHS = 3) or (vHS = 5) or (vHS = 6) or (vHS = 9) or (vHS = 10) or (vHS = 12) then Inc(Result, 2) else if (vHS = 7) or (vHS = 11) or (vHS = 13) or (vHS = 14) then Inc(Result, 3) else if (vHS = 15) then Inc(Result, 4); end; vHS := pHS^[i] shr 4; if vHS > 0 then begin if (vHS = 1) or (vHS = 2) or (vHS = 4) or (vHS = 8) then Inc(Result) else if (vHS = 3) or (vHS = 5) or (vHS = 6) or (vHS = 9) or (vHS = 10) or (vHS = 12) then Inc(Result, 2) else if (vHS = 7) or (vHS = 11) or (vHS = 13) or (vHS = 14) then Inc(Result, 3) else if (vHS = 15) then Inc(Result, 4); end; end; end;
Code:
1
2
3
4
5
6 MonEnsemble: set of char; MesAnchors: TAnchors; ... SizeOfSetShai(@MonEnsemble, SizeOf(MonEnsemble)); SizeOfSetShai(@MesAnchors, SizeOf(MesAnchors));