Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy FTP Dateien speichern/bearbeiten (https://www.delphipraxis.net/53826-indy-ftp-dateien-speichern-bearbeiten.html)

Xenonz 23. Sep 2005 10:23


Indy FTP Dateien speichern/bearbeiten
 
Hallo!
Ich benutz Delphi 6 und Indy 9.

In meinem Programm nimmt er Verbindung auf mit einem FTP Server. Welche Möglichkeiten gibt es nun zb eine Datei von dort auf dem Rechner zu speichern? Gibt es eine Befehlsüberischt o.ä.?
Und ich möchte auch gerne, dass aus einer Text Datei zb eine Zeile in eine neue Textdatei geschrieben wird. Welche Befehle gibt es für solche Vorgänge? Kann man auch einfach CMD Befehle benutzen?

Mfg Xenonz

marabu 23. Sep 2005 11:54

Re: Indy FTP Dateien speichern/bearbeiten
 
Hi,

um eine Datei vom FTP-Server zu laden kannst du so vorgehen:

Delphi-Quellcode:
// Die Verbindungsdaten sind schon mit dem
// Object Inspector eingetragen worden
procedure TMainForm.FormCreate(Sender: TObject);
begin
  FTP.Connect;
  LocalRoot := 'C:\daten\test\'; // private var von MainForm
  Memo.Clear;
end;

// Verbindung wieder abbauen
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  FTP.Disconnect;
end;

// so kannst du eine Datei vom Server in einem Stream entgegennehmen
procedure TMainForm.cmdOpenExecute(Sender: TObject);
var
  url: string;
  s: TStream;
begin
  url := '';
  if not InputQuery('Öffnen', 'URL', url) or (url = '') then
    Exit;
  s := TMemoryStream.Create;
  FTP.Get(url, s);
  s.Position := 0;
  Memo.Lines.LoadFromStream(s);
  s.Free;
end;

// so kannst du die Datei vom Server direkt im Dateisystem speichern
procedure TMainForm.cmdDownloadExecute(Sender: TObject);
var
  path, url, fileName: string;
begin
  url := '';
  if not InputQuery('Download', 'URL', url) or (url = '') then
    Exit;
  fileName := LocalRoot + url;
  Translate(fileName, '/', '\'); // geht auch mit StringReplace()
  path := ExtractFilePath(fileName);
  ForceDirectories(path);
  FTP.Get(url, fileName);
  Memo.Lines.LoadFromFile(fileName);
end;
Eine Liste der FTP Kommandos findest du im RFC, den ich dir schon genannt habe. Du wirst dich aber eher für die Methoden der Komponente FTP interessieren - die stehen in der Indy Online Hilfe, die nach der Installation in die von Delphi integriert sein sollte. Einfach mit F1 bei ausgewählter FTP-Komponente probieren.

Deine Frage zur Verarbeitung von Textdateien solltest du in einem eigenen thread stellen.

Freundliche Grüße vom marabu

Xenonz 23. Sep 2005 16:36

Re: Indy FTP Dateien speichern/bearbeiten
 
Danke für die Antwort Marabu!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13: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