Ecrire/lire un fichier *.ini en c/c++

Contenu du snippet

Voici un petit article pour apprendre rapidement et sans effort à écrire des données nécessaires à l'initialiastion d'un programme dans un fichier "mon_prog.ini".

Un fichier d'initialisation est toujours utile pour une application. Par exemple, on a toujours besoin de sauvegarder les préférences de l'utilisateur quelque part. A l'initialisation de l'interface, il est avantageux que l'utilisateur la retrouve dans le même état qu'avant la fermeture précédentes (emplacement des barres d'outils, des boutons, etc.). Le fichier d'initialisation est la solution.

Un fichier d'installation est de la forme suivante :

[SECTION1]
CLE1=string1
CLE2=string2
CLE3=string3
[SECTION2]
CLE1=string1
CLE2=string2
[SECTION3]
CLE1=string1
CLE2=string2
CLE3=string3
CLE4=string4

On a plusieurs section, et pour chaque section un ensemble de variable.

Seulement deux fonctions sont nécessaires à cette opération.
GetPrivateProfileString, pour récupérer des valeurs.
WritePrivateProfileString, pour sauvegarder des valeurs.

GetPrivateProfileString

DWORD GetPrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);

lpAppName [in] : le nom de la section
lpKeyName [in] : le nom de la clé
lpDefault [in] : la valeur à retourner par défaut dans lpReturnedString si la section ou bien la clé n'existe pas
lpReturnedString [out] : la valeur demandée (cette chaîne ne peut pas contenir des caractères de control - code inférieur à 32)
nSize [in] : Taille du buffer lpReturnedString
lpFileName [in] : le nom du fichier d'initialisation

Cette fonction retourne la taille du buffer de sortie.
Si la variable lpAppName est NULL, alors la fonction retourne le nom de toutes les sections dans le buffer de sortie.
Si la variable lpKeyName est NULL, alors la fonction retourne le nom de toutes les variables présentes dans cette section dans le buffer de sortie.

WritePrivateProfileString

BOOL WritePrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpString,
LPCTSTR lpFileName
);

lpAppName [in] : le nom de la section
lpKeyName [in] : le nom de la clé
lpString [in] : la valeur à sauvegarder (le système ne supporte pas l'utilisation du caractères \t-tabulations dans cette chaîne)
lpFileName [in] : le nom du fichier d'initialisation

Si lpFileName ne contient pas un chemin complet, le fichier d'initialisation est cherché dans le répertoire WINDOWS.

Conclusion

Vous pouvez maintenant à votre tour utiliser facilement des fichiers d'initialisation. Pour plus d'informations, consulter la doc en ligne MS : http://msdn.microsoft.com

Pour info, Microsoft conseille d'utiliser les registres plutôt que les fichiers *.ini pour les systèmes 32 Bits

Conclusion :


La source provient du team CodingSkillaz

A voir également

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.

Du même auteur (cs_kozy)