Faire appel à un fichier .ini en C++

faridamaster Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
SchSoftware Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

SVP, j'ai besoin de faire appel d'un fichier .ini lors d'une programmation d'interface graphique en C++ et je sais pas comment faire , est-ce-que vous pouriez m'aider?

Merci
A voir également:

1 réponse

SchSoftware Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   3
 
Je vous donne la réponse sous Windows... (penser à donner un peu plus de détails pour vos prochaines question (environnement ... ...)!)

Le plus simple est d'utiliser la fonction
GetPrivateProfileString(LPCTSTR lpszAppName, LPCTSTR lpszKeyName, LPCTSTR lpszDefault, LPTSTR lpReturnedString, DWORD nSize, LPCTSTR lpszFileName);

https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getprivateprofilestring?redirectedfrom=MSDN
Désoler, lien en Anglais

Sinon, un peu en détails de ses paramèters:
LPCTSTR lpszAppName: Le nom de la section
LPCTSTR lpszKeyName: Le nom de la clé
LPCTSTR lpszDefault: La valeur par défaut qui sera retourner si la section/clé n'est pas trouver
LPTSTR lpReturnedString: UNE VARIABLE? INITIALISER A LA TAILLE SUFFISANTE OU SERRA STOCKER LE RESULTAT (ou la valeur par défaut)
DWORD nSize: La taille de cette variable (Son nombre de caractères)
LPCTSTR lpszFileName: Le nom du fichier ini

Imaginons un fichier "c:\UnFichier.ini" contenant (entre autre)
[MaSection]
MonNomDeCle=MaValeur
............................

Pour lire la valeur, il faut écrire
TCHAR tchMonResultat[512]; // je prépare une variable ou serra stocker mon résultat, de taille 512...
ZeroMemory(tchMonResultat, 512 * sizeof(TCHAR)); // on initialise le contenu à "0"

GetPrivateProfileString(_T("MaSection"), _T("MonNomDeCle"), _T("") /* pas de valeur par défaut */, tchMonResultat/* ma variable de sortie */, 512 /* sa taille */, _T("c:\\UnFichier.ini"));


Voilà
J'espère avoir un peu aidé

Bien à vous
0