Alle Sections eine ini-Datei auslesen



  • Ich muss leider noch eine Frage nachschieben und um Hilfe bitten 😞

    In einer ini-Datei habe ich mehrere Sections angegeben, was z.B. so aussieht:

    [Max]
    .
    .
    [Peter]
    .
    .
    [Anton]

    Nun sind mir diese Sectionnamen aber nicht bekannt, da sie vom
    Anwender angelegt wurden. Ich müsste nun eine Möglichkeit finden
    die Sectionnamen aus der ini zurück zu bekommen.

    Einen Ansatz hatte ich bereits vor Ewigkeiten mal gefunden (glaube sogar
    hier aus dem Forum, find es aber nicht wieder). Allerdings ging es dabei um die Keynames einer Section.

    char tmp[MAX_PATH],tmpnames[MAX_PATH]; 
    CString test;
    int namesize=GetPrivateProfileString("irgendein name der sektion",NULL,"",tmpnames,100,"c:\\test.ini"); 
    for(char* p=tmpnames;p<tmpnames+namesize;p+=strlen(p)+1) 
    { 
      GetPrivateProfileString("irgendein name der sektion",p,"",tmp,100,"c:\\test.ini"); 
      test+="\"";
      test+=tmp; 
      test+="\"\r\n";
    }
    MessageBox(test);
    

    Das Konstrukt ist genial, aber es funktioniert scheinbar in keinster Weise
    mit Sektionsnamen, da dieser ja afaik immer bekannt sein muss 😕

    Die Alternative wäre nur die Datei zeilenweise einzulesen und dann nach den
    Klammern zu parsen. 🙄


  • Mod

    Quatsch!
    Lies doch mal die Doku.

    Der zweite Parameter muss NULL sein!

    lpKeyName [in]
    The name of the key whose associated string is to be retrieved. If this parameter is NULL, all key names in the section specified by the lpAppName parameter are copied to the buffer specified by the lpReturnedString parameter.



  • Habs eben auch gesehen, allerdings springt er mir nicht auf den
    nächsten Sektionnamen. Ich tüftel weiter 😃


  • Mod

    Jeder davon ist 0 terminiert ⚠

    Zeig Code!



  • Habs begriffen dank dem Hinweis von Martin und den Ausführungen hier


Anmelden zum Antworten