Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdFTP-Meldungen unterdrücken (https://www.delphipraxis.net/115466-idftp-meldungen-unterdruecken.html)

hsbc 12. Jun 2008 14:35


IdFTP-Meldungen unterdrücken
 
Hallo allerseits,

Habe mir mit Indy10 eine FTP-Anwendung für Upload/Download geschrieben, welche auch bereits sehr gut läuft.

Leider bekomme ich gelegentlich und auch nicht auf allen Servern beim Zugriff auf FTP.List folgende Meldungen:

Zitat:

Transfer complete.
Quotas off
bzw.

Zitat:

Entering Passive Mode (62,140,23,35,167,36):
obwohl alle IdFTP-Anweisungen in try-except Blöcken eingebunden sind.

Meistens kommen diese beiden Meldungen unmittelbar hintereinander. Blöd ist nur, dass man jede dieser Meldungen mit OK beantworten muss, damit das Programm weiterläuft.

Ich habe zwar jetzt eine Möglichkeit gefunden, dass diese Meldungen nicht mehr kommen, indem ich vor dem FTP.List eine künstliche Pause von 200 msec eingefügt habe, was natürlich keine Ideallösung darstellt aber vorläufig mal funktioniert.

Gibt es hier eine "saubere" Lösung, die Ausgabe dieser Meldungen zu unterdrücken?

mfg
Herbert

Apollonius 12. Jun 2008 14:51

Re: IdFTP-Meldungen unterdrücken
 
Setze für Application.OnException einen Handler.

hsbc 12. Jun 2008 15:43

Re: IdFTP-Meldungen unterdrücken
 
Hallo Apollonius,

vielen Dank vorerst mal für deinen Beitrag. Funktioniert einwandfrei, nur konnte ich mein Problem damit noch nicht lösen, da diese besagten Meldungen eigentlich Fehlermeldungen von Indy her sind und un meinem Falle das Listing unterbricht.

Wie gesagt, 200 msec Pause vor dem Aufruf von List würde zwar mein Problem lösen, nur finde ich das eine unsaubere Lösung und auch eine künstliche Abbremsung der Programmausführung.

Meistens kommen diese besagten Meldungen dann, wenn unmittelbar vor dem Aufruf von ftp.list die Function OnExpanding von VirtualStringTree mit den Anweisungen

Delphi-Quellcode:
TmpNode := VNode;
VST.DeleteNode(VNode, true);
VNode := TmpNode;
Data := VST.GetNodeData(VNode);
// hier habe ich die Pause eingebaut

// der nächste Aufruft ist dann bereits ftp.list ...
abgearbeitet wurde.

Vielleicht hat noch jemand eine Idee oder ein ähnliches Problem bereits gehabt.

mfg
Herbert


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