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 ?
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.php3Les 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+.
For crying out loud !
Ta réponse me suffit, je vais me débrouiller.
MERCI BEAUCOUP POUR TON AIDE
Tient, si cela interesse quelqu'un une fonctionne qui compte le nombre d'item activé ...
utilisation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 MonEnsemble: set of char; MesAnchors: TAnchors; ... SizeOfSetShai(@MonEnsemble, SizeOf(MonEnsemble)); SizeOfSetShai(@MesAnchors, SizeOf(MesAnchors));
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager