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!