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 :

Sauvegarde std::vector dans un .ini


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    27
    D�tails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Par d�faut Sauvegarde std::vector dans un .ini
    Salut tout le monde,

    J'ai un petit probleme concernant la sauvegarde et la lecture d'un tableau de type std::vector<std::vector> dans un fichier INI. Je le fais dej� pour des tableaux classiques et �a marche sans probl�me (sous forme binaire).
    Par contre avec les std::vector je n'y arrive pas, �a me sauvegarde bien qq chose mais � la lecture �a n'initialise pas mon tableau avec ce qu'il faut.
    J'utilise le code suivant:
    Mon tableau est du type:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    std::vector < std::vector<float> > m_tCentreSphere;
    Ensuite j'initialise sa taille
    -Pour la sauvegarde dans le ini
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    AfxGetApp()->WriteProfileBinary("PairesElectrodes","CoordonneesElectrodes",(BYTE *) &(m_tCentreSphere),m_tCentreSphere.size());
    Pour la taille apparemment la commande size() ne marche pas, je sais pas pourquoi....

    -Pour la lecture:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    BYTE* pb = NULL; 
    UINT nLen = 0; 
     
    if (AfxGetApp()->GetProfileBinary("PairesElectrodes","CoordonneesElectrodes", &pb, &nLen)) 
    	{ 
    		ASSERT(nLen == m_tCentreSphere.size());
    		memcpy(&m_tCentreSphere, pb, m_tCentreSphere.size());  
    	}
    En gros ma question est: est-ce que c'est possible de faire �� avec des std::vector? et si oui est-ce que le pb vient de mon code?

    La taille de mon tableau est bien initialis�e et pour la taille j'ai test� avec une valeur fixe....mais �a ne marche pas, quand je veux acc�der au tableau par la suite, �a plante...

    Merci de votre aide

  2. #2
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Cela ne marchera certainement pas comme �a.
    Un vecteur est une abstraction de T*. Alors le vecteur vecteurs est un T**, soit un tableau de pointeurs. Tu as deux indirections.
    Il te faudra faire une boucle, voire deux.

    Pour la restauration, l'adresse du premier �l�ment du vecteur est "&(v[0])". Et en C++, mieux vaudra �crire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    if (truc_ok) {
        std::copy(pb, pb+nLen, std::back_inserter(m_tCentreSphere));
    }
    Si tes vecteurs ont tous le m�me nombre d'�l�ments, utilise plut�t une structure rectangulaire (boost::multi_array<>, blitz++, boost uBlas, ... (non standard, mais portables))
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  3. #3
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    27
    D�tails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Par d�faut
    Merci beaucoup pour la confirmation et les infos, je vais me diriger dans cette direction maintenant que je sais que �a n'est pas possible de la mani�re dont je m'y prenais.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Pb std::vector dans une classe
    Par didi_di dans le forum Langage
    R�ponses: 8
    Dernier message: 17/11/2009, 10h07
  2. str::tr1::function dans std::vector
    Par Klaim dans le forum SL & STL
    R�ponses: 2
    Dernier message: 25/06/2008, 14h19
  3. Sauvegarde std::map dans un fichier
    Par ZeRiL dans le forum SL & STL
    R�ponses: 8
    Dernier message: 03/05/2007, 12h54
  4. Lib�ration de pointeurs dans un std::vector
    Par G dans le forum SL & STL
    R�ponses: 17
    Dernier message: 06/04/2005, 22h37
  5. R�ponses: 8
    Dernier message: 26/08/2004, 18h59

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