Hallo Manuel,
ich habe das noch einmal getestet.
Ich bekomme nur den Fehler "Listindex out of Bounds" wenn
ich den Stream, nachdem er geladen wurde, nicht auf den Anfang
(kundenStream.position:=0;) zurückgesetzt habe.
Anbei noch einmal beide Routinen zum down- und upload.
Delphi-Quellcode:
procedure TForm1.downloadButtonClick(Sender: TObject);
var
kundenStream : TMemoryStream;
csv : TStringList;
i: Byte;
begin
kundenStream := TMemoryStream.Create;
idftp1.Host:='
192.168.189.128';
idftp1.Username:='
....';
idftp1.Password:='
...';
idftp1.Connect();
idftp1.Get('
kunden.csv',kundenStream);
idftp1.Disconnect;
csv := TStringList.create;
kundenStream.Position:=0;
csv.loadfromStream(kundenStream);
stringGrid1.rowCount :=
csv.count;
if csv.count > 0
then
for i:=0
to csv.count -1
do
begin
StringGrid1.Rows[i].Delimiter:='
,';
StringGrid1.Rows[i].Commatext:=
csv[i];
end;
csv.free;
kundenStream.Free;
end;
procedure TForm1.uploadButtonClick(Sender: TObject);
var
kundenStream: TMemoryStream;
csv : TStringList;
i: Byte;
begin
kundenStream := TMemoryStream.Create;
idftp1.Host:='
192.168.189.128';
idftp1.Username:='
...';
idftp1.Password:='
...';
idftp1.Disconnect;
csv := TStringList.create;
for i:=0
to StringGrid1.Rowcount -1
do
begin
csv.Add(StringGrid1.Rows[i].CommaText);
end;
idftp1.Connect();
csv.SaveToStream(kundenStream);
idftp1.put(kundenStream,'
kunden.csv');
csv.free;
kundenStream.Free;
idftp1.disconnect;
end;
Wenn es bei Dir nicht so geht, dann stimmt in Deinem Code irgendetwas nicht.
Grüße
Klaus