Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Indy FTP Dateien speichern/bearbeiten

  Alt 23. Sep 2005, 11:54
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
  Mit Zitat antworten Zitat