AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FTP via Indy

Ein Thema von tferl · begonnen am 6. Okt 2010 · letzter Beitrag vom 7. Okt 2010
Antwort Antwort
tferl

Registriert seit: 5. Okt 2006
Ort: SBK
5 Beiträge
 
Delphi 7 Professional
 
#1

FTP via Indy

  Alt 6. Okt 2010, 13:55
Hallo Zusammen,

eigentlich ist es ja recht einfach via FTP einen Download zu realisieren.
Aber nach der Umstellung auf Delphi2010 hab ich einige Probleme.

Den angehängten (vereinfachten) Code benutze ich, um eine Reihe von Exceldateien regelmäßig von einem FTP-Server abzuholen.
In einer global verfügbaren Struktur mit dem Namen "Ini" sind alle benötigten Informationen korrekt enthalten.
Die Klasse FTP wurde als Komponente ins Formular gezogen.
Der Transfertyp steht auf ftBinary - ich hab's beim Debuggen überprüft.

Nach Abarbeitung der Funktion sind die Excel-Dateien zwar auf der lokalen Maschine, jedoch sind diese nicht mehr lesbar.
Durch den Transport werden alle Dateien (egal ob Excel oder sonstwas) zerstört.

Ein Download mittels Explorer funktioniert und liefert auch korrekte Dateien.....

Hat irgendjemand eine Idee, was ich hier falsch mache.

Ich benutze Delphi2010 Enterprise mit den Indy-Komponenten im Original-Auslieferungszustand.


Function Download:Boolean;
Var
FList :TStringList;
i :Integer;
Source,
Dest : String;

begin

FTP.Host := ini.FTPHost;
FTP.Username := ini.FTPSer;
FTP.Password := ini.FTP_Password;
FTP.Transfertype := ftBinary;

Try
FTP.Connect;
Except
EXIT;
end;

// Versuche ins Quellverzeichnis zu wechseln .....
Try
FTP.ChangeDir(ini.FTP_SourceDir);
Except
EXIT;
end;

Application.ProcessMessages;

// lesen des Verzeicnisinhaltes
FList := TStringList.Create;

FTP.List(FList,'',FALSE);

// alle Dateien durchlaufen und XLS-Files via FTP.Get() abholen
For i:=0 to FList.Count-1 do
Begin

Source := FList[i];

If Pos('.XLS',Uppercase(Source)) > 0 Then
Begin

Dest := Ini.LocalDir + Source;

Try
FTP.Get(Source , Dest , True);
Except
//....
End;
End

End;

FList.Free;

end;

Geändert von tferl ( 6. Okt 2010 um 16:15 Uhr)
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#2

AW: FTP via Indy

  Alt 6. Okt 2010, 14:21
Kannst du bitte Delphi-Tags verwenden mit einer korrekten Formatierung, so tut das lesen in den Augen weh
Steven
  Mit Zitat antworten Zitat
tferl

Registriert seit: 5. Okt 2006
Ort: SBK
5 Beiträge
 
Delphi 7 Professional
 
#3

AW: FTP via Indy

  Alt 6. Okt 2010, 16:17
bin ein Forumsgreenhorn - Was ist ein Delphi-Tag ???? - sorry - ich hab bisher noch keine Sourcen gepostet
  Mit Zitat antworten Zitat
plusplus

Registriert seit: 30. Jul 2010
106 Beiträge
 
Delphi 2009 Architect
 
#4

AW: FTP via Indy

  Alt 7. Okt 2010, 11:03
Dein FTP Root ist moeglicherweise nicht richtig. Connect und sie erstmal in welcher directory du bist, danach change dein dir, und danach gebe nur den file name als SourceFile und Path+File als DestFile.

Indy FTP nimmt den path von dem system als root path, nicht den von dem user. darum must erst schauen wo du bist.

PS: The List format bringt nicht den file name sauber. du must es sauber machen. wenn ich mich richting erinnere the list function bringt was wie filename.xls | file | -rxrxxrx.


Hope this helps.
Grid Computing made simple - http://xerocoder.com

Geändert von plusplus ( 7. Okt 2010 um 11:06 Uhr)
  Mit Zitat antworten Zitat
GHorn

Registriert seit: 24. Mär 2009
Ort: NRW
124 Beiträge
 
#5

AW: FTP via Indy

  Alt 7. Okt 2010, 11:43
Schau mal in die Hilfe:

Delphi-Quellcode:
procedure Get(
    const ASourceFile: string,
    ADest: TIdStream,
    AResume: Boolean = false
); overload;
"Dest" muss ein Stream sein.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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