Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   INI: Alle Schlüssel einer Sektion löschen? (https://www.delphipraxis.net/153791-ini-alle-schluessel-einer-sektion-loeschen.html)

mlspider 16. Aug 2010 14:06

INI: Alle Schlüssel einer Sektion löschen?
 
Hallo,

wie der Titel schon verrät, versuche ich alle Schlüssel einer Sektion löschen. Mein Ansatz war wie folgt:

Delphi-Quellcode:
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'conf\sfav.ini');
 ini.DeleteKey('fav','');
 ini.DeleteKey('Destination','');
 ini.DeleteKey('logo','');
 ini.DeleteKey('country','');
 ini.Free;
Leider ohne Erfolg.

mkinzler 16. Aug 2010 14:13

AW: INI: Alle Schlüssel einer Sektion löschen?
 
Es wird nur die Ini im Speicher geändert. Du brauchst die entsprechenden Sections beim Schreiben einfach nicht mehr erzeugen, um sie aus der Ini auf der Platte zu entfernen

mlspider 16. Aug 2010 14:16

AW: INI: Alle Schlüssel einer Sektion löschen?
 
Hm,steig ich jetzt nicht hinter.:oops:

mkinzler 16. Aug 2010 14:21

AW: INI: Alle Schlüssel einer Sektion löschen?
 
Die Inidatei wird in den Speicher gelesen. Alles was du dann machst, bezieht sich nur auf die Einstellungen im Speicher. Die Ini auf der Platte ändert sich dadurch nicht. Diese ändert sich erst, wenn du diese neu schreibst.

himitsu 16. Aug 2010 14:22

AW: INI: Alle Schlüssel einer Sektion löschen?
 
Nein, bei TIniFile wird die Datei direkt verändern. (nix mit Speicher)

- lösche über EraseSection einfach die ganze Sektion
- hol über ReadSection die Namen alles Keys und lösche dann diese


Er wollte nur die namenlosen Keys '' seiner Sektionen löschen und nicht alle Keys.

mkinzler 16. Aug 2010 14:27

AW: INI: Alle Schlüssel einer Sektion löschen?
 
Also bei mir nicht.

Neutral General 16. Aug 2010 14:35

AW: INI: Alle Schlüssel einer Sektion löschen?
 
Ich glaube es gibt ne Methode namens "UpdateFile", die man aufrufen muss, wenn man will, dass die Änderungen in die Datei geschrieben werden.

mlspider 16. Aug 2010 14:47

AW: INI: Alle Schlüssel einer Sektion löschen?
 
Ist zwar etwas umständlich, aber ich habe es nun wie folgt gelöst:

Delphi-Quellcode:
ini.EraseSection('payfav');
 ini.WriteString('payfav','01','0');
 ini.DeleteKey('payfav','01');
 ini.Free;
Zunächst lösche ich die gesamte Sektion. Danach lege ich diese wieder mit einem temporären Schlüssel und Wert an. Zu guter letzt lösche ich den Schlüssel aus der Sektion.

Nicht schön, aber wirkungsvoll.:-D

Die Methode UpdateFile brauchte ich noch nie. Alle Änderungen innerhalb der INI wurden korrekt in die Datei geschrieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz