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

C Discussion :

stocker une structure dans un fichier ini?


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 43
    Points
    43
    Par défaut stocker une structure dans un fichier ini?
    bonjour

    Voila dans un programme en c j'ai un tableau de structures que je souhaite stockeer dans un fichier ini. Mais voila je n'arrive pas à stocker une structure dans un fichier ini.

    comment dois je faire?

    merci

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Mickey.jet
    <...>je n'arrive pas à stocker une structure dans un fichier ini.
    Tu as oublié de poster le code avec lequel tu as un problème.

    Nota. Un fichier.ini ne permet pas un grande structuration, mais il convient pour des structures simples. Si il y a des imbrications de structures, xml est plus indiqué.

    Rappel : on enregistre jamais de pointeurs. Des données uniquement.
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 43
    Points
    43
    Par défaut
    oui bien sur voila mon code (enfin un bout ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
       struct
               {
                   char Nom [100];
                   char Prenom [100];
                   int Age;
               } maStructure;
     
    .............
    Après avoir rempli ma structure je fais...
    .............
     
             WritePrivateProfileStruct('NomSection', 'NomClef', maStructure, sizeof  (maStructure), 'c:\\monFichier.ini');
    et quiand je fais ca j'ai dans mon fichier ini une suite de chiffre (code héxa apparemment) mais c'est loin d'etre lisible pour moi

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Mickey.jet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             WritePrivateProfileStruct('NomSection', 'NomClef', maStructure, sizeof  (maStructure), 'c:\\monFichier.ini');
    Je rappelle qu'en C, les chaines sont délimitées par " " et non ' '... Ca peut expliquer des choses...

    De plus, chaque champ doit être traité individuellement après avoir été converti en une chaine valide. sprintf() est ton ami...

    Je t'invite à relire la spécification de la fonction :

    http://msdn.microsoft.com/library/de...filestruct.asp
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 43
    Points
    43
    Par défaut
    Emmanuel Delahaye a écrit:
    Je rappelle qu'en C, les chaines sont délimitées par " " et non ' '... Ca peut expliquer des choses...
    Oups je sors juste d'un code en pascal mais dans mon source j'ai bien des ""

    Emmanuel Delahaye a écrit:
    De plus, chaque champ doit être traité individuellement après avoir été converti en une chaine valide.
    sprintf() est ton ami...
    Mais ma structure est correctement rempli (j'ai vérifié )

  6. #6
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 141
    Points : 43
    Points
    43
    Par défaut
    Emmanuel Delahaye a écrit:
    De plus, chaque champ doit être traité individuellement après avoir été converti en une chaine valide.
    sprintf() est ton ami...
    Ah en fait tu est en train de me dire que je ne doit pas passer toute ma struct mais je dois passer chaque champ un par un c'est bien ca?

    Mais bon dans ce cas je vois pas trop la différence avec WritePrivateProfileString

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Mickey.jet
    Ah en fait tu est en train de me dire que je ne doit pas passer toute ma struct mais je dois passer chaque champ un par un c'est bien ca?

    Mais bon dans ce cas je vois pas trop la différence avec WritePrivateProfileString
    Effectivement, erreur de ma part, c'est à cette fonction que je faisais allusion...

    L'autre (WritePrivateProfile()) permet effectivement d'enregistrer un bloc de données binaire comme une structure. Il ne faut pas espérer pouvoir le lire clairement dans le registre.

    Par contre, tu devrais pouvoir le récupérer tel quel dans une structure strictement identique.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/08/2006, 10h35
  2. Comment écrire une section dans un fichier ini?
    Par Jayceblaster dans le forum Delphi
    Réponses: 5
    Dernier message: 26/06/2006, 14h08
  3. Stocker une liste dans un fichier
    Par Knuckles dans le forum Général Python
    Réponses: 1
    Dernier message: 29/05/2006, 08h08
  4. copier une structure dans un fichier
    Par brute dans le forum MFC
    Réponses: 18
    Dernier message: 10/03/2006, 14h30

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