Delphi Problem beim Speichern einer Ini-Datei

W4Ve

Lt. Junior Grade
Registriert
März 2008
Beiträge
273
Hallo Leute, vor einiger Zeit hab ich mal in Delphi ein Programm geschrieben, welches beim Speichern einige Werte aus Edit-Feldern in eine .ini Datei schreibt.

Gespeichert habe ich die Werte so:
Code:
procedure TForm1.Speichern1Click(Sender: TObject);
begin
savedialog1.InitialDir:=ExtractFilePath(Application.ExeName);
savedialog1.execute;

ini:= TIniFile.Create(savedialog1.filename+'.ini'); <--- Hier liegt wahrscheinlich das Problem
try
ini.writestring('Tageswerte','Edit1',edit1.Text);
...

finally
ini.free;
showmessage('Erfolgreich gespeichert!')

end;

Leider habe ich nun das Problem, dass wenn ich die Daten speichere, wieder öffne, etwas verändere und sie dann wieder speichern will, folgendes passiert:
Die Datei wird nicht überschrieben, sondern so gespeichert:
Save.ini
Save.ini.ini
Save.ini.ini.ini
...

Ich bräuchte also einen Befehl um die Datei zu überschreiben.
Wahrscheinlich ist das mal wieder ganz billig, aber ich komm einfach nicht drauf. ^^

Schon mal danke

W4Ve
 
ich kenne diese Sprache nicht, doch mir ist das hier aufgefallen:
savedialog1.filename+'.ini');
was ist wenn das Plus weg ist? Weil von der Logik für mich her passt das Plus nicht, weil es dann heissen würde +.ini also so wie du es beschrieben hast.
 
in den dialogen gibts die eigenschaft defaultext (o.ä., hab grad den bcb nicht offen). das setzt du auf ini und übergibst nur den dateinamen ohne ".ini". alternativ kannst du überprüfen, ob schon eine dateierweiterung gesetzt wurde (ExtractFileExt()) bzw. ob diese die ist, welche du haben willst.
 
Vielen, vielen Dank genau das war es!
Danke Sir_Sascha und claW.
 
Zurück
Oben