![]() |
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; |
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:
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!!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; 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! |
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