Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi In Ini schreiben funktioniert nicht (https://www.delphipraxis.net/50310-ini-schreiben-funktioniert-nicht.html)

Neutral General 23. Jul 2005 12:56


In Ini schreiben funktioniert nicht
 
Bei folgendem Quelltext verändere ich eine ini und will sie wieder hochladen aber irgendwie werden die Änderungen nicht gespeichert :(

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var Briefe : TIniFile;
    Brief : TBrief;
begin
  IDFTP1.Get('Briefe/Briefe.ini','Letter.ini'); // Ini wird vom Server geladen
  Briefe := TInifile.Create('Letter.ini'); // Wird geladen
  Brief:= TBrief.Create;
  Brief.An := TransEdit1.Text;
  Brief.Betreff := Transedit2.Text;
  Brief.Text := TStringlist.Create;
  Brief.Text.Text := Transmemo1.Text;
  Brief.Nr := Briefe.ReadInteger('BRIEFE','Anzahl',1));
  Briefe.WriteInteger('BRIEFE','Anzahl',Brief.Nr+1); // Wert wird überschrieben
  Briefe.WriteString('Brief' + IntToStr(Brief.Nr+1),'Von',User); // Neue Section + Wert anlegen
  Briefe.WriteString('Brief' + IntToStr(Brief.Nr+1),'Betreff',Brief.Betreff); // Neue Section + Wert anlegen
  Briefe.Free;
  IDFTP1.Put(Stream,'Briefe/Brief' + IntToStr(Brief.Nr+1) + '.txt');
  IDFTP1.Delete('Briefe/Briefe.ini'); //ini auf dem Server löschen
  IDFTP1.Put('Letter.ini','Briefe/Briefe.ini'); //und locale hochladen
end;

Eichhoernchen 23. Jul 2005 13:11

Re: In Ini schreiben funktioniert nicht
 
schau mal in dein C:\Windows verzeichniss da ist die ini bestimmt verändert^^

So weit wie ich mich erinnere wird die ini Datei wenn du Briefe := TInifile.Create('Letter.ini'); ausführst ohne einen speziellen ordner anzugeben in %systemroot% gemacht!!

Also mach sowas wie:

Code:



procedure TForm1.Button4Click(Sender: TObject);
var Briefe : TIniFile;
    Brief : TBrief;
begin
  IDFTP1.Get('Briefe/Briefe.ini','Letter.ini'); // Ini wird vom Server geladen
  Briefe := TInifile.Create(ExtractFilePath(ParamStr(0))+'Letter.ini'); // Wird geladen
  Brief:= TBrief.Create;
  Brief.An := TransEdit1.Text;
  Brief.Betreff := Transedit2.Text;
  Brief.Text := TStringlist.Create;
  Brief.Text.Text := Transmemo1.Text;
  Brief.Nr := Briefe.ReadInteger('BRIEFE','Anzahl',1));
  Briefe.WriteInteger('BRIEFE','Anzahl',Brief.Nr+1); // Wert wird überschrieben
  Briefe.WriteString('Brief' + IntToStr(Brief.Nr+1),'Von',User); // Neue Section + Wert anlegen
  Briefe.WriteString('Brief' + IntToStr(Brief.Nr+1),'Betreff',Brief.Betreff); // Neue Section + Wert anlegen
  Briefe.Free;
  IDFTP1.Put(Stream,'Briefe/Brief' + IntToStr(Brief.Nr+1) + '.txt');
  IDFTP1.Delete('Briefe/Briefe.ini'); //ini auf dem Server löschen
  IDFTP1.Put('Letter.ini','Briefe/Briefe.ini'); //und locale hochladen
end;
Die Indy Komponente scheint die Datei ja automatisch in das Verzeichniss der Exe Datei zu packen, nur bei ini files musst du es speziell angeben!!


Mir ist nur nicht so ganz klar warum du das Zeug erst alles in ein record names TBrief reinschreibst und von dem aus dann erst in die INI, mach es doch direkt, da ersparst du dir doch einiges!

Neutral General 23. Jul 2005 13:52

Re: In Ini schreiben funktioniert nicht
 
Genau das ist mir grad aufgefallen als ich auf meinem PC nach "Letter.ini" gesucht hab. Aufm server waren nämlich dauernd Brief11.txt Brief12.txt usw obwohl auf dem Server gar nix davon gestanden hat. Aber es hat alles in C:\Windows\Letter.ini gestanden -.-

Aber danke trotzdem :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.

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