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 :

Quel type de fichier de config utiliser? XML? INI?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 177
    Par défaut Quel type de fichier de config utiliser? XML? INI?
    Bonjour,

    J'aimerais stocker des paramètres dans un fichier de config (nombre de threads à lancer, port d'écoute utilisé, maximum de personne en file d'attente, ...).

    Pourriez-vous me conseiller sur le type de fichier à utiliser, pour avoir une solution robuste, simple, rapide, et portable (utilisable aussi bien sous Linux, Windows, et Mac) ?

    J'ai en particulier entendu parler de fichiers ini et xml, mais je ne sais pas quelle est la meilleure solution. XML semble moins utilisée en C++ (plutot utilisée pour le web), et les fichiers ini semblent être en voie de disparition...

    Bref quelle est la solution couramment utilisée pour lire/éditer les fichiers de config actuellement? Existe-t'il des fonctions standardisées permettant la lecture de ces fichiers, que ce soit sous Windows ou sous Linux?

    Merci d'avance pour vos réponses!

  2. #2
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 26
    Par défaut
    Tu peux utiliser Boost.program_options qui est mal du tout et qui permet de lire une configuration aussi bien de la ligne de commande que d'un fichier.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 177
    Par défaut
    Le soucis est que j'aimerais inclure un minimum de librairies externes : je vais créer des threads, des sockets, une interface graphique, éventuellement la gestion du son plus tard... Le tout le plus portable possible. Je ne me vois pas utiliser 36 librairies différentes, dont je ne controlerais pas la qualité/l'évolution.

    En continuant mes recherches, j'ai entendu parler de Boost, qui semble gérer les threads et les socket, mais le documentation me semble un peu ostère... Il peut faire plein de choses, mais c'est pas vraiment bien expliqué ^^

    J'ai aussi lu du bien de SDL (en particulier SDL_NET) pour ce qui est du réseau, et ça semble encore être une librairie assez généraliste.

  4. #4
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XML semble moins utilisée en C++ (plutot utilisée pour le web)
    -> Je ne suis pas d'accord. XML est parfait comme fichier de configuration.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    les fichiers ini semblent être en voie de disparition
    -> Je suis d'accord.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 177
    Par défaut
    Bon ok, vous m'avez convaincu (vous et mes recherches ), je vais opter pour du XML.

    Reste à trouver un parseur (il me semble que c'est comme ça qu'on appelle ça ), me permettant de lire et d'éditer ce type de fichier.

    Auriez-vous des librairies à me conseiller?
    Mon but :
    - Robustesse : un code propre, qui n'affiche pas 36 warning/erreur si on n'utilise pas le même compilateur que celui ayant créé le module ^^
    - Fonctionnalités de base : lire une entrée, la modifier, à la limite en ajouter une... C'est tout ... Pour le moment
    - Rapidité : pas une usine à gaz qui sait faire plain de chose, mais qui est leeeeente
    - Simplicité d'utilisation : pas 36 trucs à bidouiller pour l'installer, que ce soit sous Linux ou sous Windows (un fichier à inclure serait parfait); pas 36 paramètres à passer, variables à initialiser, ...

    Bref un truc simple et propre ^^

    J'ai entendu parler pour le moment de TinyXML et de libXML. Je suis entrain d'essayer d'en savoir plus à leur sujet, leurs avantages et inconvéniants, leur facilité d'installation/d'utilisation... Mais si vous avez des avis à partager, ils sont biensûr les bienvenus!

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 287
    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 287
    Par défaut
    Le XML c'est overkill comme solution pour des fichiers d'initialisation. (quand en plus on voit que des solutions tout XML reposent sur des .properties qui sont eux de bêtes .rc ... il y a de quoi se poser des questions).

    Le .rc est ce qu'il y a de plus simple et passe partout. C'est du .ini en plus simplifié (pas de sections). boost.program_options est parfait pour cela.

    N'espère pas éditer ton .xml à la main, l'XML n'est pas fait pour ça. Un .rc ou un .ini, c'est fait pour. Si tu ne voulais pas introduire de dépendances et autres trucs compliqués, tu t'es trompé de techno avec l'XML.


    Si à termes tu dois utiliser une bibliothèque de fenétrage, alors choisis-en une dès maintenant, et regarde les solutions qu'elle propose pour gérer fichiers de conf, sockets, threads, ... Souvent les frameworks de fenétrage font plus que juste les fenêtres.
    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...

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Citation Envoyé par Bayard Voir le message
    -> Je ne suis pas d'accord. XML est parfait comme fichier de configuration.
    Moi je trouve que c'est vraiment utiliser un rouleau compresseur pour écraser une mouche. C'est plus long et difficile d'installer et d'apprendre à utiliser un parseur XML que de faire la lecture du fichier de config à la main, dans un format simple, une entrée par ligne, une tabulation entre la clé et la valeur, par exemple.

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    pour parser un fichier ini, tu peux utiliser SimpleIni et directement inclure ses 3 fichiers dans ton projet.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Par défaut
    Citation Envoyé par Sylvain Togni Voir le message
    C'est plus long et difficile d'installer et d'apprendre à utiliser un parseur XML que de faire la lecture du fichier de config à la main, dans un format simple, une entrée par ligne, une tabulation entre la clé et la valeur, par exemple.
    C'est pas forcément beaucoup plus long: TinyXML est super simple a utiliser pour ce genre de choses et très efficace.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier de config en xml
    Par Mathew77 dans le forum C#
    Réponses: 2
    Dernier message: 31/12/2009, 11h27
  2. [8.04] Quel est le fichier de config pour paramétrer le proxy ?
    Par Giovanny Temgoua dans le forum Ubuntu
    Réponses: 3
    Dernier message: 08/10/2008, 22h36
  3. Quel type de fichier image pour icon ?
    Par hugobob dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 14/03/2007, 12h02
  4. Réponses: 6
    Dernier message: 26/04/2006, 15h13
  5. Réponses: 0
    Dernier message: 26/04/2006, 13h01

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