also, um das ganze leidige Thema mal abzuschließen.....
Inidateien sind (natürlich) Textdateien, genau wie *.pas, *.c, *.bat, ... und 1000 andere -> sie sind also z.B. mit einem Texteditor lesbar.
Sie sind aber nach ihrer Definition nicht "ganz normale" Textdateien, sondern in einem festen Format aufgebaut. Dieses Format sieht Gruppen (Sections) vor, innerhalb derer die Einträge (Identifier) stehen. Gruppen sind in eckigen Klammern [] eingefaßt. Einträge werden immer von einem "=" Zeichen gefolgt, nach dem der Wert (Value) steht.
Beispiel:
[System]
GUI=1
Bootlogo=Splash.bmp
[Printer]
Default=HP Deskjet
So, falls jetzt mit Inifile.WriteString('Printer', 'Default', 'Epson Stylus') der Default-Eintrag in der Printer-Gruppe geändert wird, bleibt NATÜRLICH auch die erste Gruppe "System" bestehen. Wär ja auch schlimm, wenn nicht.
Wenn mit Inifile.DeleteKey('Printer', Default') der Default-Eintrag gelöscht wird, bleibt die Gruppe "Printer" trotzdem bestehen, nur eben leer (d.h. ohne Einträge).
Eine Inidatei löschen zu müssen, bevor sie neu geschrieben wird, deutet zumindest mal auf ein "seltsames" Programmkonzept hin. Oder Inidateien werden dort nicht in ihrem eigentlichen Sinn verwendet.
Die Delphi-Hilfe zu TIniFile erklärt das Konzept übrigens auch recht gut.
Roderich