TIniFile Section umbenennen



  • tagchen,
    kann man irgendwie mit TIniFile die [Section] umbenennen, um neue Werte dann unter diesem Namen zu speichern? Falls es geht, wie? TCustomIniFile hat da auch nichts richtiges parat...

    greetz KN4CK3R



  • Interessanterweise gibt es tatsächlich keine Umbenennen-Funktion.
    Also musst Du irgendwas in der Art machen:

    TIniFile* iniFile = new TIniFile("filename.ini");
    TStringList* sectionValues = new TStringList();
    iniFile->ReadSectionValues("OldSectionName", sectionValues);
    iniFile->EraseSection("OldSectionName");
    for (int i = 0; i < sectionValues->Count; ++i) {
       iniFile->WriteString("NewSectionName", 
                            sectionValues->Names[i], 
                            sectionValues->Values[sectionValues->Names[i]]);
    }
    

    Hab ich aber nicht getestet...

    Gruß

    Alexander

    [Edit]Names auf Values geändert - Danke an Zweifler[/Edit]



  • jop, sowas wie dein Code funktioniert. Hatte es etwas anders gemacht, aber hatte gehofft, dass es vll ne Einzeiler-Funktion gibt. Aber trotzdem danke.

    greetz KN4CK3R



  • KN4CK3R schrieb:

    jop, sowas wie dein Code funktioniert. Hatte es etwas anders gemacht, aber hatte gehofft, dass es vll ne Einzeiler-Funktion gibt. Aber trotzdem danke.

    greetz KN4CK3R

    Das müßt Ihr mir zeigen, wie der Code funktioniert.
    valueNames[hier muß ein int und nicht ansiString] sein. Der Section Name wird zwar geändert, aber micht Sicherheit nicht richtig zurückgeschrieben.
    Ich würde das nicht mit IniFile sondern StringList->LoadFromFile machen,
    nach dem Namen suchen und nur den ändern.



  • p.s. meine Tippfehler könnt Ihr behalten 😞



  • ich hab nicht gesagt, dass sein Code funktioniert, sondern dass das was er bezweckt funktioniert. Also zwischenspeichern und neu schreiben.

    greetz KN4CK3R


Anmelden zum Antworten