Gestion de fichier .ini en c sous linux comme sous windows

Soyez le premier à donner votre avis sur cette source.

Vue 7 651 fois - Téléchargée 855 fois

Description

La présentation et la gestion des fichiers .ini sous windows était intéressante. J'ai fait une bibliothèque pour les gérer facilement. Le principe est d'avoir un fichier sous la forme:

[section1]
cle1=valeur1
cle2=valeur2

[section2]
cle1=valeur1
cle2=valeur2

Il fallait pouvoir ajouter, modifier (writeINI), supprimer(delINI) et récupérer (readINI) la valeur d'une cle facilement, pour cela 3 fonctions:

char *writeINI (char *section, char *key, char *pKeyValue, char *fileName);

int delINI (char *sectionName, char *pKeyName, char **ppStr, char *fileName);

int readINI (char *section, char *key, char **ppStr, char *fileName);

Les paramètres sont tjs dans le meme ordre: section, clé, valeur, nom du fichier.
ATTENTION: dans readINI et delINI le 3eme parametre est un pointeur de pointeur, c'est pour récupérer la clé!!!

Pour plus de détails voir les commentaires dans le source.

J'ai livré avec le code un fichier test_filetools.c et un Makefile générique avec un exemple d'utilisation.

N'hésitez pas à me contacter en cas de problème

Source / Exemple :


4 fichiers à inclure dans vos projets:

/** une gestion d'exception récupérée dans un Hors Série LOGIN **/
exception.h
exception.c

/** ma gestion des .ini **/
filetools.h
filetools.c

tous est dans le zip !!

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

beeline
Messages postés
83
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
9 juin 2009
-
cle1:valeur1 ????

c'est pas deux point c'est un égale ( cle1=valeur1 ) ... sous windoze en tout cas.

est ce que ta source prende le égale ou le deux point ?
cs_squale
Messages postés
44
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
20 septembre 2006
-
Mon code source gère bien le '=', c'est une erreur au niveau de mon commentaire.
Si vous avez des soucis pour l'utiliser n'hésitez pas.

Bon usage
cs_aerith
Messages postés
54
Date d'inscription
lundi 17 mars 2003
Statut
Membre
Dernière intervention
12 mars 2006
-
vraiment tres simpa, tu vien de m'eviter un sacrer boulo
les execeptions rende le code assez complex mais bon

#define ENDTRY break; default:; \ <= manquai le ;
} pop_exc(exc); };

mici ++
cs_squale
Messages postés
44
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
20 septembre 2006
-
Je suis content que ça serve à qq'un. Pour ta remarque concernant le ';' effectivement il y en a besoin en fonction des compilateurs. Je prévois de le rajouter. La gestion des exception permet d'avoir un code fiable.

Je compte améliorer cette bibliotheque en apportant:
- modification de la fonction writeINI en modifiant le parametre pKeyValue en pointeur de pointeur afin que toutes les parametres de toutes les fonctions soient de meme type,
- une gestion des commentaires dans le fichier (ajout et suppression au minimum et peut-etre modification)
cs_squale
Messages postés
44
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
20 septembre 2006
-
Je suis content que ça serve à qq'un. Pour ta remarque concernant le ';' effectivement il y en a besoin en fonction des compilateurs. Je prévois de le rajouter. La gestion des exception permet d'avoir un code fiable.

Je compte améliorer cette bibliotheque en apportant:
- modification de la fonction writeINI en modifiant le parametre pKeyValue en pointeur de pointeur afin que toutes les parametres de toutes les fonctions soient de meme type,
- une gestion des commentaires dans le fichier (ajout et suppression au minimum et peut-etre modification)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.