![]() |
Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
Hallo,
ich versuche gerade, eine Excel-Datei mit den Indy-Komponenten von einem FTP-Server herunterzuladen, erhalte aber nur Datensalat. Auf dem FTP-Server landen gewöhnliche Textdateien, deren Download funktioniert. Excel-Tabellen werden jedoch von Excel nur noch mit Datensalat angezeigt. Lade ich die Datei per Firefox oder Filezilla herunter, sind sie lesbar. Ich habe zum Vergleich die Datei einmal per Programm (Indy) heruntergeladen und einmal per FileZilla. Die erste Datei wird zerstört angegezeigt, die zweite (FileZilla) einwandfrei. Ich habe die beiden Dateien dann mit WinMerge verglichen und Überraschung: WinMerge behauptet, dass die beiden Dateien identisch wären. Im Forum gibt es ja mehrere Threads zu dem Thema, daher habe ich den Tip mit ftBinary (sollte aber Default sein). Hier der Code, der zum Herunterladen verwendet wird:
Delphi-Quellcode:
Ich habe testweise den Download über TFileStream durchgeführt, mit dem selben Ergebnis.idFTP1 := TidFTP.Create(Application); try idFTP1.Host := strFTPHost; idFTP1.Username := strFTPUser; idFTP1.Password := strFTPPW; idFTP1.Port := intFTPPort; idFTP1.UseExtensionDataPort := True; idFTP1.TransferType := ftBinary; try idFTP1.Connect; if (idFTP1.Connected) then begin IdFTP1.ChangeDir('/Upload'); // Liste in Grid darstellen for iCnt := 0 to gv1.RowCount - 1 do begin if (gv1.CellByName['colCheck', iCnt].AsBoolean) then begin strFile := gv1.CellByName['colFile', iCnt].AsString; idFTP1.TransferType := ftBinary; strTargetFile := lblTargetDir.Caption + '\' + strFile; if (FileExists(strTargetFile)) then begin DeleteFile(strTargetFile); end; IdFTP1.Get(strFile, strTargetFile, True); end; end; end else begin blOK := False; end; except on E:Exception do begin ShowWarning('Fehler bei Herunterladen der Dateien, Meldung: ' + E.Message); blOK := False; end; end; finally idFTP1.Quit; idFTP1.Disconnect; idFTP1.Free; Screen.Cursor := CurSave; end; Wie gesagt, der Code liefert einwandfreie Textdateien, aber keine verwendbaren Excel-Dateien und ich weiss nicht, warum. Hat vielleicht jemand einen Tip, wo ich suchen könnte? Gruß Frank |
AW: Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
Hallo,
könnte es daran liegen, dass Du den transferType in der Schleife auf Ascii setzt und nie wieder auf binary zurück. Das es sich soweit ich weiß bei Excel-Dateien um komprimierte Dateien handelt ist der binary Transfermode der angebrachtere. Grüße Klaus |
AW: Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
Zitat:
//Edit: @Klaus01 war schneller... ;) |
AW: Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
Vor allem solltest Du den Download in eine eigene Routine auslagern.
Das wäre auch für das Debugging wesentlich pflegeleichter. Gruß K-H |
AW: Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
Hallo,
danke für die Hinweise auf den Schwachsinn in der ersten Bedingung. ich habe den Quelltext im ersten Beitrag korrigert, der Fehler bleibt jedoch. Das mit dem Auslagern in eine eigene Routine werde ich testen. Grüße Frank |
AW: Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
Zitat:
Und wenn du es nicht weißt, warum machst du dann nicht mal einen Binärvergleich der Dateien und schaust nach ob und was sich da unterscheidet? Ich hab noch zwei weitere Rätsel für dich. :angel2: Was passiert wohl, wenn der erste Eintrag in dem ominösen gv1 ein colCheck=False besitzt? Und was wird wohl passieren, wenn zwischendurch ein Eintrag das colCheck=False hat? |
AW: Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
Hallo,
das ominöse gv1 ist ein Grid, in dem die Namen der Dateien auf dem FTP-Server stehen, colCheck ist eine Spalte mit einer Checkbox. Wenn also colCheck = false ist, soll zur nächsten Zeile gegangen werden (daher die for-Schleife). Edith meint, ich könnte auch den einen end-Eintrag etwas weiter nach unten setzen, soll dass bei colCheck = True alles bearbeitet wird :) Gruß Frank |
AW: Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
Zitat:
|
AW: Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
Hallo,
Zitat:
Gruß Frank |
AW: Excel-Datei per FTP herunterladen -> zerstört (oder auch nicht)
.. bilde mal einen Hash (md5, sha1) über jede Datei.
Sind sie dann auch noch identisch? Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz