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=strin g3
[SECTION2]
CLE1=string1
CLE2=string2
[SECTION3]
CLE1=string1
CLE2=string2
CLE3=string3
CLE4=strin g4
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