Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy FTP fileTransfer via Stream (https://www.delphipraxis.net/148790-indy-ftp-filetransfer-via-stream.html)

J Kadison 8. Mär 2010 14:43


Indy FTP fileTransfer via Stream
 
Hallo!

Ich habe mal eine Frage zu der FTP-IndyKomponente.

Und zwar:

Ich möchte eine Datei auf meinem Server in eine TStringlist einlesen und umgekehrt von TStringlist auf den Server als Datei uploaden und zwar ohne Temporäre Dateien auf dem System.
Da dachte ich mir, die funktionen
Delphi-Quellcode:
procedure TIdFTP.Put(const ASource: TStream; const ADestFile: string = '';
 const AAppend: boolean = false);
procedure TIdFTP.Get(const ASourceFile: string; ADest: TStream; AResume: Boolean = false);
wären hier ganz hilfreich.

Aber wenn ich versuche das ganze herunter zu laden, dann bekomme ich einfach NICHTS zurück geliefert :(

Hier die Funktion:
Delphi-Quellcode:
var
    stream : TStream;
begin

    Result := TStringList.Create;

    try
        stream := TMemoryStream.Create;
        Server.Get(serverpath, stream);
        Result.LoadFromStream(stream);
        stream.Free;                    
    except
        Result.Text := 'ERROR';  
    end;
Wenn ich einen normalen TStream nehme, bekomme ich unschöne fehler: 'Meldung Abstrakter Fehler';
wie kann ich das denn machen, damit ich auch den inhalt der Textdatei auslesen kann?

Klaus01 8. Mär 2010 15:04

Re: Indy FTP fileTransfer via Stream
 
Delphi-Quellcode:
var
    stream : TStream;
begin

    Result := TStringList.Create;

    try
        stream := TMemoryStream.Create;
        Server.Get(serverpath, stream);
        stream.position := 0; // könnte helfen.
        Result.LoadFromStream(stream);
        stream.Free;                    
    except
        Result.Text := 'ERROR';  
    end;
Grüße
Klaus

GHorn 8. Mär 2010 15:14

Re: Indy FTP fileTransfer via Stream
 
Delphi-Quellcode:
var
    stream : TStream;
begin

    Result := TStringList.Create;

    try
        stream := TMemoryStream.Create;
        Server.Get(serverpath, stream);
        Result.LoadFromStream(stream);
        stream.Free;                    
    except
        Result.Text := 'ERROR';  
    end;
Das würde ich so ändern:


Delphi-Quellcode:
var
    stream : TMemoryStream;                      // TMemoryStream
begin

    Result := TStringList.Create;

    try
        stream := TMemoryStream.Create;
        Server.Get(serverpath, stream, False);   // False als Parameter
        stream.Seek(0, soFromBeginning);         // an den Anfang setzen
        Result.LoadFromStream(stream);
        stream.Free;                    
    except
        Result.Text := 'ERROR';  
    end;

J Kadison 8. Mär 2010 15:42

Re: Indy FTP fileTransfer via Stream
 
Hihi!

Das ist ja toll auf einmal gehts =)


DANKE für die schnellen antworten!

:coder2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 Uhr.

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