Faire appel à un fichier .ini en C++

faridamaster Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
SchSoftware Messages postés 46 Statut Membre -
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

1 réponse

  1. SchSoftware Messages postés 46 Statut Membre 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