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

wxWidgets Discussion :

wxFileConfig : impossibilité de récupérer les entrées


Sujet :

wxWidgets

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 28
    Points
    28
    Par défaut wxFileConfig : impossibilité de récupérer les entrées
    Bonjour à tous.
    J'expose mon problème: je stocke divers paramètres dans un fichier *.ini respectant la structure de ce type de fichier. J'arrive à récupérer les noms des groupes, mais impossible de récupérer les noms des entrées (ou clés). Que faire? Voici le code que j'utilise:
    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
    wxString szFileConfig = _("./config.ini");
    wxFile *pFile = new wxFile();
    if( (pFile->Open( szFileConfig, wxFile::read)) != NULL )
    {
         wxFileInputStream *pFileInputStream = new wxFileInputStream( *pFile );
         if( pFileInputStream->IsOk() )
         {
                wxFileConfig *pConfig = new wxFileConfig( *pFileInputStream, wxConvUTF8);
     
                /*quelques variables locales*/
                wxString str;
                long dummy;
     
                /*On récupère tous les noms d'entrées*/
                bool bCont = pConfig->GetFirstEntry(str, dummy);
                while ( bCont )
                {
                    aEntryNames.Add(str);
                    bCont = pConfig->GetNextEntry(str, dummy);
                }
     
                aEntryNames.Shrink();
                temp.Printf(_("Nombre d'entrées: %d.\n"), pConfig->GetNumberOfEntries());
                wxMessageBox( temp );
     
                /*On récupère tous les noms de groupes*/
                bCont = pConfig->GetFirstGroup(str, dummy);
                while ( bCont )
                {
                    aGroupNames.Add(str);
                    bCont = pConfig->GetNextGroup(str, dummy);
                }
     
                aGroupNames.Shrink();
                temp.Printf(_("Nombre de groupes: %d.\n"), pConfig->GetNumberOfGroups());
                wxMessageBox( temp );
     
           else
           {
           }
           pFile->Close();
    }
    else
    {
    }
    Merci d'avance de votre aide.

  2. #2
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par zoom* Voir le message
    J'arrive à récupérer les noms des groupes, mais impossible de récupérer les noms des entrées (ou clés)
    Mais encore?
    • Que te renvoient les fonctions GetFirstEntry() et GetNextEntry()?
    • Que te renvoie GetNumberOfEntries?
    Cet exemple étant celui de wxWidgets, il est sensé fonctionner. Le seul point non maitrisé ici est la manière dont le fichier de config a été créé. D'où le besoin de savoir si le parsing du fichier détectes déjà bien les entrées présentes.

    Un conseil: n'utilise pas de pointeurs quand tu n'en a pas besoin.
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 25
    Points : 34
    Points
    34
    Par défaut
    Bonjour.

    Pour récupérer les valeurs voilà comment je procède :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    wxFileConfig	*file = new wxFileConfig(IniFile);
     
    file->SetPath(wxT("DATABASE"));
    file->Read(wxT("Server"),&Server);
    file->Read(wxT("Database"),&Database);
    delete file;
    Idem pour les écrire avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    wxFileConfig	*file = new wxFileConfig(IniFile);
     
    file->SetPath(wxT("DATABASE"));
    file->Write(wxT("Server"), Server);
    file->Write(wxT("Database"), Database);
    delete file;
    En espérant vous avoir aidé.
    Just Modeste.
    --

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    Pour Spout: GetNumberOfEntries() me renvoie 0, et GetFirstEntry() et GetNextEntry() me renvoient "" (un blanc).

    Pour Just Modeste: merci, ce que tu m'as indiqué fonctionne. Mais je ne comprends pas pourquoi l'autre méthode ne fonctionne pas!?

Discussions similaires

  1. Récupérer les entrées utilisateurs
    Par Tsukaasa dans le forum Java ME
    Réponses: 2
    Dernier message: 29/04/2008, 12h25
  2. Récupérer les entrées de Outlook
    Par _56ka dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 06/02/2008, 09h39
  3. Réponses: 2
    Dernier message: 01/12/2005, 12h24
  4. Réponses: 6
    Dernier message: 23/12/2003, 15h30
  5. Requete select pour récupérer les no match entre 2 tables
    Par Celina dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/12/2003, 11h59

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