IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Récupérer le 1° élément d'un SET OF


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de Tchaill39
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 110
    Points : 70
    Points
    70
    Par défaut Récupérer le 1° élément d'un SET OF
    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 ?

  2. #2
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    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.

    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.
    trouvé sur http://cyberzoide.developpez.com/info/turbo/chap25.php3

    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 !

  3. #3
    Membre régulier Avatar de Tchaill39
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 110
    Points : 70
    Points
    70
    Par défaut
    Ta réponse me suffit, je vais me débrouiller.

    MERCI BEAUCOUP POUR TON AIDE

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 522
    Points : 25 052
    Points
    25 052
    Par défaut
    Tient, si cela interesse quelqu'un une fonctionne qui compte le nombre d'item activé ...

    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;
    utilisation
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Test de l'existence d'un élément dans un set
    Par Rodrigue dans le forum C++
    Réponses: 16
    Dernier message: 28/10/2006, 01h36
  2. Réponses: 10
    Dernier message: 09/06/2006, 17h02
  3. [Débutant] Acceder à l'élément d'un set
    Par pinggu dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 01/06/2006, 01h54
  4. Récupérer les différents éléments Internet et Mail
    Par mdriesbach dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 31/10/2005, 13h43
  5. [SET]Recherche d'éléments communs à 2 sets
    Par CappCorp dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 03/01/2005, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo