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

Boost C++ Discussion :

Echapper # dans fichier ini


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 26
    Par défaut Echapper # dans fichier ini
    Bonjour,

    J'utilise boost::program_options pour parser un fichier ini. Le problème est qu'un des paramètres de mon fichier contient un # et parse_config_file le considère comme un début de commentaire. J'ai essayé de l'échapper avec un \ et même en doublant le #, mais ça n'a pas fonctionné.

    Est-ce que quelqu'un sait comment faire ? Merci.

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Essaie de mettre le tout entre guillemets, sinon, il faut créer un parser spécialisé.

    Autre possibilité, contourner le probleme. tu mets un @ plutot qu'un # dans ton fichier, et à la lecture de la valeur, tu fais un prétraitement pour remplacer le @ par un #

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 26
    Par défaut
    Merci pour votre réponse.

    Citation Envoyé par leternel Voir le message
    Essaie de mettre le tout entre guillemets, sinon, il faut créer un parser spécialisé.
    J'ai essayé aussi avec des guillemets (simples ou doubles), le résultat est le même.

    Citation Envoyé par leternel Voir le message
    Autre possibilité, contourner le probleme. tu mets un @ plutot qu'un # dans ton fichier, et à la lecture de la valeur, tu fais un prétraitement pour remplacer le @ par un #
    Certes, mais lorsqu'un utilisateur voudra mettre un @ quelque part, je serai bloqué de la même façon.

    Si boost n'y arrive pas (je suis choqué), peut-être faudra-t-il passer par un autre parser comme celui-ci : inih par exemple. Mais j'aimerais bien limiter le nombre de dépendances, et comme j'ai besoin de boost pour plein d'autres choses...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 26
    Par défaut
    Pour ceux que ça intéresse, apparemment, Qt le fait aussi avec QSettings, sûrement plus répandu que la lib indiquée dans mon dernier message.

  5. #5
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Citation Envoyé par Tan Phi Voir le message
    Pour ceux que ça intéresse, apparemment, Qt le fait aussi avec QSettings, sûrement plus répandu que la lib indiquée dans mon dernier message.
    Plus repandu certainement pas, tout ceux qui ne font pas du GUI evitent Qt.

    Tu as Boost.PropertyTree qui fait le boulot que tu veux.
    Personellement je n'utilise Boost.ProgramOption QUE pour les options du programme, et Boost.PropertyTree pour les fichiers de configuration. La difference c'est que le premier est changeable en ligne de commande. Si tu voulais juste un fichier de config, utilise Boost.ProgramOption pour recuperer le nom du fichier, et Boost.PropertyTree pour le lire.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 26
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Plus repandu certainement pas, tout ceux qui ne font pas du GUI evitent Qt.
    Je suis bien d'accord. D'ailleurs pour l'instant, je n'ai pas de GUI non plus. Comme dit plus haut, j'aimerais éviter les dépendances inutiles.

    Citation Envoyé par Klaim Voir le message
    Tu as Boost.PropertyTree qui fait le boulot que tu veux.
    Je ne connaissais pas, mais effectivement c'est prometteur. En plus ça parse le JSON on dirait, et j'en ai besoin également.

    Merci à tous pour vos réponses.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/02/2009, 03h39
  2. Rechercher valeur dans fichier ini?
    Par jojo86 dans le forum Langage
    Réponses: 10
    Dernier message: 06/02/2009, 12h10
  3. Résultat d'une requête dans fichier ini
    Par bruno28 dans le forum VBA Access
    Réponses: 6
    Dernier message: 13/06/2007, 16h29
  4. Parametre dans fichier ini pour base fractionnée
    Par sunvialley dans le forum Access
    Réponses: 5
    Dernier message: 28/07/2006, 14h38
  5. [C#] Comment lire/ecrire dans fichier ini ?
    Par meli0207 dans le forum C#
    Réponses: 2
    Dernier message: 20/03/2006, 16h53

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