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 :

pointeur vers enregistrement


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 142
    Par défaut pointeur vers enregistrement
    bjr à tous
    Dans le guide Delphi mini projet n°5:tableau associatif,http://fbeaulieu.developpez.com/guide/miniprojet/#LIII concernant le j'ai trouvé une probleme de mal comprondre une istruction dans le code source de la methode "rechercher element" qui renvoi un pointeur vers un enregistrement voila le code source de cette methodeil est mieux de voir la class 'tableau associatif ' au lien precedent)
    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
    function TableauAssociatif.rechercheElem(Cle: string): PElementTableauAssociatif;
    var
      indx: integer;
    begin
      indx := 0;
      Result := nil;
      { recherche jusqu'à ce que Result soit modifié (clé trouvée) ou qu'il n'y ait plus aucun
        élément à trouver. Remarquez le choix du while bien préférable à un for. }
      while (indx < fElems.Count) and (Result = nil) do
        begin
          { remarquez que Items est une propriété tableau par défaut et que l'on
            pourrait écrire fElems[indx] à la place de fElems.Items[indx].
            Remarquez le transtypae et la comparaison dans la foulée... }
          if PElementTableauAssociatif(fElems.Items[indx])^.Cle = Cle then
            // ici, on exploite le coté "par défaut" de Items
            Result := fElems[indx];
          inc(indx);
        end;
    end;
    je n'ai pas compris pourquoi il ecrit ça:
    PElementTableauAssociatif(fElems.Items[indx])^.Cle
    il utilise directement le type 'PelementTableauAssociatif' au lieu de passer par l'utilisation d'une variable de ce type.?est-ce que ça marche ça?
    j'attend votre reponse impatiemment, merci d'avance.

  2. #2
    rsc
    rsc est déconnecté
    Membre émérite
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PElementTableauAssociatif(fElems.Items[indx])^
    Il n'utilise pas directement le type, il effectue ce qu'on appelle un transtypage :

    La propriété Items d'une liste est de type Pointer, qui est un type de pointeur générique. Si tu veux deréférencer ce pointeur (^), c'est-à-dire retrouver la valeur de la variable vers lequel il pointe, il faut que tu lui dises de quel type est ta variable. Donc, tu lui dis : c'est un pointeur vers un élément de tableau associatif.

    Il y aurait beaucoup à dire sur les transtypages, mais je pense que ça suffira pour que tu puisses aller un peu plus loin

    Bon courage !

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 142
    Par défaut
    Citation Envoyé par rsc Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PElementTableauAssociatif(fElems.Items[indx])^
    Il n'utilise pas directement le type, il effectue ce qu'on appelle un transtypage :

    La propriété Items d'une liste est de type Pointer, qui est un type de pointeur générique. Si tu veux deréférencer ce pointeur (^), c'est-à-dire retrouver la valeur de la variable vers lequel il pointe, il faut que tu lui dises de quel type est ta variable. Donc, tu lui dis : c'est un pointeur vers un élément de tableau associatif.

    Il y aurait beaucoup à dire sur les transtypages, mais je pense que ça suffira pour que tu puisses aller un peu plus loin

    Bon courage !
    merci rsc; mais je n'ai pas bien compris ,peux-tu m'explique un peu plus?

  4. #4
    rsc
    rsc est déconnecté
    Membre émérite
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Par défaut
    Ca serait mieux si tu me disais ce qui te pose problème : la notion de pointeur, de transtypage, et déréférencement...

    Si ta réponse est "Tout", je te suggère de continuer ton étude du guide de Frédéric Beaulieu, en laissant de côté dans un premier temps ces petits "os", et je suis certain que quand tu seras arrivé à la fin du guide, beaucoup de choses se seront clarifiées

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 142
    Par défaut
    Citation Envoyé par rsc Voir le message
    Ca serait mieux si tu me disais ce qui te pose problème : la notion de pointeur, de transtypage, et déréférencement...

    Si ta réponse est "Tout", je te suggère de continuer ton étude du guide de Frédéric Beaulieu, en laissant de côté dans un premier temps ces petits "os", et je suis certain que quand tu seras arrivé à la fin du guide, beaucoup de choses se seront clarifiées
    bjr rsc
    Merci bien ,oui je vais continuer à lire ce guide à la fin c'est trés interessant.
    Merci bcp pour ton aide

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

Discussions similaires

  1. Utilité d'un pointeur vers une fonction ?
    Par Nasky dans le forum C
    Réponses: 10
    Dernier message: 20/03/2010, 19h54
  2. Réponses: 12
    Dernier message: 31/12/2005, 16h01
  3. Pointeur vers fonction
    Par flopaname dans le forum Langage
    Réponses: 3
    Dernier message: 23/06/2005, 15h46
  4. [Syntaxe] Pointeur sur enregistrement : syntaxe exacte
    Par phplive dans le forum Langage
    Réponses: 8
    Dernier message: 18/04/2005, 21h38
  5. Pointeur vers un tableau
    Par Nikos dans le forum C
    Réponses: 3
    Dernier message: 09/12/2002, 00h43

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