Hilfe bei Key aus INI Datei Lesen

partitionist

Erfahrenes Mitglied
Eine INI Datei ist so aufgebaut:

Code:
[section]
key1=string
key2=string
key3=string
key4=string
...

Mit der Funktion GetPrivateProfileString() kann man den Wert aus keyX auslesen.
Doch ich möchte nicht den Wert sondern erstmal alle keyX auslesen, also wie kann man diese keyX in einer Scheife ausgeben:

Code:
key1
key2
key3
key4
...


Bitte um Hilfe
 
Habs so gemacht:

Code:
char Buffer[200], BufferSize[200];
    GetPrivateProfileSection( "alias", Buffer, 200, file.c_str() );
    char* Key = Buffer;
    string skey;
    while( *Key )
    {
        skey += Key;
        skey += '\0';

        Key += strlen( Key ) + 1;
    }
    cout << skey << endl;

Mit diesem Code wird aber der Key und der Wert angezeigt:

key1=string key2=string key3=string key4=string

Könnt ihr mir bitte schnell sagen wie man jetzt aus dem String skey die die keyX ausschneiden kann, ich weiß es geht mit skey.subtstr() aber wie sieht die Schleifenbedingung aus?
 
Schreibe die Paare doch in eine map:
C++:
char* pKey = Buffer;
map<string, string> data;        

while( *pKey )
{
    string            strKey = pKey;
    string::size_type nPos   = strKey.find('=', 0);

    data[strKey.substr(0, nPos)] = strKey.substr(nPos + 1);    
    
    pKey += strlen( pKey ) + 1;
}

map<string, string>::iterator it;

for( it = data.begin(); it != data.end(); it++ )
{
    cout << "KEY: " << it->first << "     VALUE: " << it->second << endl;
}

Gruß
MCoder
 
Zurück