Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Schlüssel samt Wert aus der INI löschen? (https://www.delphipraxis.net/129417-schluessel-samt-wert-aus-der-ini-loeschen.html)

mlspider 18. Feb 2009 20:59


Schlüssel samt Wert aus der INI löschen?
 
Irgendwie stehe ich heute im Wald. Ich habe in einer INI einen Schlüssel angelegt und diesem einen Wert zugewiesen.

[rec]
Aufzeichnung 1 18.02.2009 21.51.14=Aufzeichnung 1 18.02.2009 21.51.14.avi

Nun versuche ich wie folgt diesen wieder zu löschen:

Delphi-Quellcode:
procedure TVideo.Button10Click(Sender: TObject);
var Ini: TIniFile;
begin
 ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'Conf\Record.ini');
 ini.DeleteKey('rec',Label2.Caption);
 ini.Free;
end;
Leider ohne Erfolg. Der Eintrag steht nach wie vor drin. :(

DeddyH 18. Feb 2009 21:03

Re: Schlüssel samt Wert aus der INI löschen?
 
Zitat:

Zitat von Online-Hilfe
DeleteKey ändert nur die im Speicher befindliche Kopie der .ini-Datei, nicht die Originaldatei. Die Änderungen werden erst mit der Methode UpdateFile in die Datei auf der Festplatte übernommen.

Hth

mlspider 18. Feb 2009 21:04

Re: Schlüssel samt Wert aus der INI löschen?
 
Sorry, aber da steige ich jetzt nicht ganz hinter.

mkinzler 18. Feb 2009 21:05

Re: Schlüssel samt Wert aus der INI löschen?
 
Inwiefern nicht? Du musst dafür sorgen das die Speicherversion der Ini zurück auf die Platte geschrieben wird.

DeddyH 18. Feb 2009 21:05

Re: Schlüssel samt Wert aus der INI löschen?
 
Versuch es mal so:
Delphi-Quellcode:
procedure TVideo.Button10Click(Sender: TObject);
var Ini: TIniFile;
begin
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
       'Conf\Record.ini');
  ini.DeleteKey('rec',Label2.Caption);
  ini.UpdateFile; //diese Zeile einfügen
  ini.Free;
end;

mlspider 18. Feb 2009 21:09

Re: Schlüssel samt Wert aus der INI löschen?
 
UpdateFile ändert leider auch nichts.

DeddyH 18. Feb 2009 21:11

Re: Schlüssel samt Wert aus der INI löschen?
 
Bist Du denn sicher, dass Label2.Caption auch stimmt?

mlspider 18. Feb 2009 21:15

Re: Schlüssel samt Wert aus der INI löschen?
 
Ich habe mal das Label auf Visible:=True gesetzt. Ja, es steht der komplette Eintrag drin:

Aufzeichnung 1 18.02.2009 21.51.14=Aufzeichnung 1 18.02.2009 21.51.14.avi

taaktaak 18. Feb 2009 21:19

Re: Schlüssel samt Wert aus der INI löschen?
 
Moin Detlef,
ich bin irritiert :(
Ein UpdateFile() ist mir eigentlich nur von TMemIniFile geläufig. So hab' ich das mal überprüft: Bei mir wird der Schlüssel auch ohne UpdateFile() gelöscht
- vermutlich ist der Fehler ein anderer....

// edit: KEIN roter Kasten, trotzdem diverse Posts? Was ist denn nun kaputt?

// edit2: Detlef, du zitierst aus TMemIniFile :wink:

taaktaak 18. Feb 2009 21:21

Re: Schlüssel samt Wert aus der INI löschen?
 
na, da haben wir's ja.
Da darf nur
Zitat:

Aufzeichnung 1 18.02.2009 21.51.14
drin stehen!

// edit: Nee, Leerzeichen stören IniFile nicht! Es darf aber natürlich nur der Schlüssel angegeben werden; nicht Schlüssel UND Wert

DeddyH 18. Feb 2009 21:23

Re: Schlüssel samt Wert aus der INI löschen?
 
Evtl. sind auch die Leerzeichen das Problem. Man könnte also das Ganze mal testhalber in Anführungszeichen einschließen oder es mit SysUtils.QuotedStr versuchen.

[edit] Ralph, das war halt die Hilfe von TMemIniFile, von der TIniFile ja erbt. Ich war zu faul zu schauen, ob das evtl. überschrieben wird ;) [/edit]

[Noch' n edit]Dann eben mit Copy den Ident rauskopieren [/Noch' n edit]

mlspider 18. Feb 2009 21:27

Re: Schlüssel samt Wert aus der INI löschen?
 
@taaktaak und alle anderen, Also müßte ich erst den zugewiesenen Wert löschen und danach den Schlüssel?
Und wie löschen ich diesen Wert? Sorry, aber ich raff heute überhaupt nichts mehr.

taaktaak 18. Feb 2009 21:30

Re: Schlüssel samt Wert aus der INI löschen?
 
Ähh, ich verstehe das Problem nicht. In der Datei steht eine Zeile mit Schlüssel=Wert Um diese Zeile zu löschen rufst du DeleteKey() mit dem Parameter SCHLÜSSEL auf. Dann wird die Zeile gelöscht

DeddyH 18. Feb 2009 21:30

Re: Schlüssel samt Wert aus der INI löschen?
 
Delphi-Quellcode:
procedure TVideo.Button10Click(Sender: TObject);
var Ini: TIniFile;
    s: string;
begin
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
       'Conf\Record.ini');
  try
    s := Copy(Label2.Caption,1,Pos('=',Label2.Caption) - 1);
    ini.DeleteKey('rec',s);
  finally
    ini.Free;
  end;
end;

taaktaak 18. Feb 2009 21:32

Re: Schlüssel samt Wert aus der INI löschen?
 
Jawoll!!!!
Detlef, mlspider: Gute Nacht!

DeddyH 18. Feb 2009 21:34

Re: Schlüssel samt Wert aus der INI löschen?
 
Dir auch :)

mlspider 18. Feb 2009 21:34

Re: Schlüssel samt Wert aus der INI löschen?
 
Danke Detlef und alle anderen. Darauf wäre ich nicht so schnell gekommen. Es funzt. :-D

Danke, Dir auch eine gute Nacht!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 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