Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#29

Re: .txt von einem ftp server auslesen

  Alt 4. Apr 2008, 16:48
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
Klaus
  Mit Zitat antworten Zitat