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

MFC Discussion :

Copier les elements d'une liste dans une autre liste


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 68
    Points : 46
    Points
    46
    Par défaut Copier les elements d'une liste dans une autre liste
    Bonjour,
    J'ai un problème que je n'arrive pas à resoudre.
    J'aimerais copier des élements stockés dans une liste dans une autre liste.
    Les élements stockés sont des pointeurs sur des élements.

    Voici la déclaration de mes listes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CTypedPtrList<CObList, CElement*> m_ElementList;
    CTypedPtrList<CObList, CElement*> m_ListeTmp;
    Est ce qu'en faisant ce code je recopie bien les elements??? Vu que ce sont des pointeurs, j'ai peur de seulement faire pointer les 2 listes sur les mêmes éléments.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CElement* pElem = 0;
    POSITION aPos = pDoc->m_ElementList.GetHeadPosition();
     
    while(aPos)
    {
    	pElem=pDoc->m_ElementList.GetNext(aPos);
    	m_ListeTmp.AddTail(pElem);		
    }
    Ensuite je souhaite vider la liste m_ElementList.

    Merci.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par Bebert71
    Bonjour,
    J'ai un problème que je n'arrive pas à resoudre.
    J'aimerais copier des élements stockés dans une liste dans une autre liste.
    Les élements stockés sont des pointeurs sur des élements.


    Est ce qu'en faisant ce code je recopie bien les elements??? Vu que ce sont des pointeurs, j'ai peur de seulement faire pointer les 2 listes sur les mêmes éléments.

    Ensuite je souhaite vider la liste m_ElementList.

    Merci.
    oui c'est tout a fait ça ,comment pourrait-il en être autrement ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 68
    Points : 46
    Points
    46
    Par défaut
    Comment on fait alors pour dupliquer un pointeur??

    Parce que mon problème est que lorsque je vais vider une liste, l'autre le sera également puisque ces 2 listes pointents vers les memes élements!

    Et pourtant j'aimerais vider une liste tout en gardant l'autre liste remplie.

    Merci.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    on ne duplique pas un pointeur mais l'objet.
    celui-ci devra avoir un contructeur de copie et l'operateur d'affectation.
    comme dans ce post de la faq :
    http://c.developpez.com/faq/vc/?page...HowToSerialize
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CElement* pElem = 0;
    POSITION aPos = pDoc->m_ElementList.GetHeadPosition();
        
    while(aPos)
    {
        pElem=pDoc->m_ElementList.GetNext(aPos);
        m_ListeTmp.AddTail(new CElement(*pElem));        
    }

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. Réponses: 3
    Dernier message: 13/01/2009, 16h55
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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