Lecture de fichier de configuration

Lecture de fichier de configuration - C - Programmation

Marsh Posté le 19-04-2006 à 12:25:01    

Bonjour, :hello:  
Connaissez vous une bibliothèque standard permettant de parser un fichier type texte de configuration pour en extraire les valeurs (avec une grammaire à définir ou imposée...).  
Je pourrais le refaire mais je n'ai pas envie de réinventer la roue ... :sweat:  
 
Par exemple :
 
DATA = ../plouf
NUMBER = 4
NAME = ./truc/hop
 
Merci d'avance  :)  

Reply

Marsh Posté le 19-04-2006 à 12:25:01   

Reply

Marsh Posté le 19-04-2006 à 12:34:32    

julien_54 a écrit :

Bonjour, :hello:  
Connaissez vous une bibliothèque standard permettant de parser un fichier type texte de configuration pour en extraire les valeurs (avec une grammaire à définir ou imposée...).  
Je pourrais le refaire mais je n'ai pas envie de réinventer la roue ... :sweat:  
 
Par exemple :
 
DATA = ../plouf
NUMBER = 4
NAME = ./truc/hop


 
Je n'en connais pas (mais je ne connais hélas pas tout).
Cependant, la gestion de ce type de fichier n'est pas trop compliqué. Avec "fgets()" tu récupères chaque ligne, avec "strchr()" tu positionnes un pointeur sur le "=" de la ligne (ou sur le caractère juste après ce "=" )
Ensuite, avec "strncmp()" tu peux comparer le début de ta ligne avec "DATA" ou "NUMBER" ou "NAME" (ou plus simplement avec chaque élément d'un tableau contenant "DATA", "NUMBER" et "NAME" ), et si tu trouves l'élément cherché, tu peux récupérer sa valeur en utilisant le pointeur positionné avec "strchr()"
Je serais très étonné que quelqu'un se soit embêté à créer une bibliothèque pour ça...

Message cité 1 fois
Message édité par Sve@r le 19-04-2006 à 12:36:22

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 19-04-2006 à 13:38:57    

XML !
 
standard, portable.

Reply

Marsh Posté le 19-04-2006 à 13:39:34    

une bonne lib pour débuter, tinyxml:  
ttp://www.grinninglizard.com/tinyxml/

Reply

Marsh Posté le 19-04-2006 à 13:41:24    

Sve@r a écrit :

Cependant, la gestion de ce type de fichier n'est pas trop compliqué. Avec "fgets()" tu récupères chaque ligne, avec "strchr()" tu positionnes un pointeur sur le "=" de la ligne (ou sur le caractère juste après ce "=" )
Ensuite, avec "strncmp()" tu peux comparer le début de ta ligne avec "DATA" ou "NUMBER" ou "NAME" (ou plus simplement avec chaque élément d'un tableau contenant "DATA", "NUMBER" et "NAME" ), et si tu trouves l'élément cherché, tu peux récupérer sa valeur en utilisant le pointeur positionné avec "strchr()"
Je serais très étonné que quelqu'un se soit embêté à créer une bibliothèque pour ça...


 
Ca s'appelle réinventer la roue :sweat:
 
Quand tu le fais pour chaque soft que tu développes, si, tu as interet à en faire une lib...

Reply

Marsh Posté le 19-04-2006 à 14:21:30    

_darkalt3_ a écrit :

une bonne lib pour débuter, tinyxml:  
ttp://www.grinninglizard.com/tinyxml/


 
Ca à l'air sympa mais je ne peux malheureusement pas utiliser du C++ ... :(

Reply

Marsh Posté le 19-04-2006 à 15:18:57    

julien_54 a écrit :

Connaissez vous une bibliothèque standard permettant de parser un fichier type texte de configuration pour en extraire les valeurs (avec une grammaire à définir ou imposée...).  


J'ai cette ébauche de début de code qui suit à peu près la spec des fichiers .ini de Windows... :  
 
http://mapage.noos.fr/emdel/clib.htm
Module INI


Message édité par Emmanuel Delahaye le 19-04-2006 à 22:13:13

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 19-04-2006 à 15:42:48    

Pour info, les primitives pour la gestion des fichiers INI (non portable, sous windows)
 
GetPrivateProfileSectionNames , GetPrivateProfileSection, WritePrivateProfileString ...

Reply

Marsh Posté le 19-04-2006 à 17:50:33    

Merci, je vais voir ce que je peux faire avec tout ca ... :)

Reply

Marsh Posté le 19-04-2006 à 19:21:17    

_darkalt3_ a écrit :

Ca s'appelle réinventer la roue :sweat:


Pas "réinventer" mais "refabriquer" la roue [:aloy]
 

_darkalt3_ a écrit :

Quand tu le fais pour chaque soft que tu développes, si, tu as interet à en faire une lib...


Tout dépend de la simplification qu'on a à utiliser la lib. Si t'as juste besoins d'une boucle contenant "fgets()", "strncmp()" et "strchr()", on peut préférer se retaper la boucle à chaque soft plutôt que de passer par une lib qui peut être plus lourde et plus fastidieuse.
Et apparemment julien_54 n'en n'a besoin que pour un soft...

Message cité 1 fois
Message édité par Sve@r le 19-04-2006 à 19:25:18

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 19-04-2006 à 19:21:17   

Reply

Marsh Posté le 24-04-2006 à 19:15:25    

Sve@r a écrit :

Pas "réinventer" mais "refabriquer" la roue [:aloy]
 
 
Tout dépend de la simplification qu'on a à utiliser la lib. Si t'as juste besoins d'une boucle contenant "fgets()", "strncmp()" et "strchr()", on peut préférer se retaper la boucle à chaque soft plutôt que de passer par une lib qui peut être plus lourde et plus fastidieuse.
Et apparemment julien_54 n'en n'a besoin que pour un soft...


 
Exact ...  
 
M'enfin, bon, je vais couper la poire en deux et me créer une petite librairie simple mais évolutive au cas où (bien que tous mes programme soit évolutifs, bien sûr  :whistle: )...
 
Merci à tous  :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed