Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi 7 (https://www.delphipraxis.net/24163-anzahl-von-dateien-ftp-verzeichnis-auslesen-delphi-7-a.html)

_HAWK_ 16. Jun 2004 14:51


Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi 7
 
Hallo,

ich will ein Progi schreiben was in einem Intervall auf ein FTP-Verzeichnis schaut ob Dateien vorhanden sind und ggf. ausliest.

Das Programm funktioniert sofern Dateien da sind aber wenn keine vorhanden sind bekomme ich eine Fehlermeldung *.No such File or Directory

Das Programm an sich ist kein Prob nur die Stelle an dem er nach den Dateien schaut.

kann mir jemand helfen? Vielleich kann man dies meldung ja auch abfangen...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
SList: TStrings;
begin
     IdFTP1.Connect(True);
     SList := TStringList.Create;
     IdFTP1:=ChangeDir('Dir_Name');    
     IdFTP1.List(slist,'*',false);   // wenn keine Datei vorhanden dann kommt hier der Fehler
     Listbox1.Items:=sList;
     IdFTP1.Disconnect;
end;
Ich habe das auch schon im 5er probiert... Dort habe ich es geschafft aber das Problem war wenn das Progi etwa 50 mal aufgerufen wurde dann hat es sich aufgehangen... und zwar bei dem list bwz nlist befehl. Villeicht hat dazu jemand noch ne idee...
Delphi-Quellcode:
procedure TForm1.DOC_EINLESEN;
var  
   sList:TStrings;
begin
     FTP_IDOC.Connect;
     FTP_IDOC.ChangeDir(Dir_Name');
     FTP_IDOC.List;                                 // hier hängt das Programm irgentwann
     if slist.Count = 0 then showmessage('lala');
     .
     .
mfg

[edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit]

Ultimator 16. Jun 2004 14:57

Re: Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi
 
1.) Bitte nimm die Delphi-Tags :wink:
2.)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
SList: TStrings;
begin
IdFTP1.Connect(True);
SList := TStringList.Create;
IdFTP1:=ChangeDir('Dir_Name');
IdFTP1.List(slist,'*',false); // wenn keine Datei vorhanden dann kommt hier der Fehler
Listbox1.Items:=sList;
IdFTP1.Disconnect;
end;
Ich würde das mit try-except machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
SList: TStrings;
begin
IdFTP1.Connect(True);
SList := TStringList.Create;
IdFTP1:=ChangeDir('Dir_Name');
try
IdFTP1.List(slist,'*',false); // wenn keine Datei vorhanden dann kommt hier der Fehler
except
//was du willst, z.B. ShowMessage
end;
Listbox1.Items:=sList;
IdFTP1.Disconnect;
end;

_HAWK_ 16. Jun 2004 15:31

Re: Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi
 
vielen dank für den tip!

ja das mit try...exept habe ich auch schon probiert die fehler medlugn kommt aber weiterhin und stürzt das programm.
Es muss doch ne andere möglichkeit geben ausser list, so was wie index oder so...

mfg

ims 16. Jun 2004 15:38

Re: Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi
 
hi _Hawk_

stürzt das programm ab wenn du es mit F9 ausführst (also aus dem delphi raus) oder wenn du es separat als eigenständige .exe ausführst.
bei mir ist es so, dass try-except blöcken nur funktionieren wenn ich das programm NICHT aus dem delphi aus aufrufe (gibt eine einstellung wo du das abstürzen/unterbrechen bei try-except verhindern kanns)

ansonsten wüsste ich nicht woran das liegen könnte...


gruss, dave

_HAWK_ 17. Jun 2004 07:23

Re: Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi
 
Zitat:

bei mir ist es so, dass try-except blöcken nur funktionieren wenn ich das programm NICHT aus dem delphi aus aufrufe
nein ich hatte gar kein try except im programm als es sich aufhing... das war ja im d5! ich hatte die exe durch geplante tasks jede 2 minuten aufrufen lassen. das programm dauert etwa 15 sec. naja und irgentwann schmierts eben ab und ich weiß nicht warum.
Ich habe mir sagen lassen, dass im 5er die ftp komponente sehr fehlerhaft sei und habe deswegen das progi ins 7er umgeschrieben nur hier gibt es schon problemem bei der anzeige der dateien bzw. bei schauen ob dateien da sind oder nicht.
Dieser blöde list befehl spukt den fehler schon so früh aus dass man mit nem try except nicht ran kommt. Deswegen war ja meine frage obs noch ne andere möglichkeit gibt zu schauen ob dateien vorhanden sind oder nicht!
Auslesen und so klappt..

mfg

_HAWK_ 17. Jun 2004 15:12

Re: Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi
 
Hallo,

wollte nur nochmal bescheid sagen, dass ich das progi zum laufen gebracht habe. Gelich mal als hinweis für alle anderen die versuchen ftp verbindungen mit d5 zu erstellen: LASST ES!
Also die 7er komponente is wesentlich resourcenschonender und stabiler als die im 5er.

mfg und thx

GuenterS 17. Jun 2004 15:45

Re: Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi
 
Zitat:

Hallo,

wollte nur nochmal bescheid sagen, dass ich das progi zum laufen gebracht habe. Gelich mal als hinweis für alle anderen die versuchen ftp verbindungen mit d5 zu erstellen: LASST ES!
Also die 7er komponente is wesentlich resourcenschonender und stabiler als die im 5er.

mfg und thx

Es ist schön, dass Du uns Bescheid gibst, aber wichtiger wäre die Information gewesen welche Version der Indy Komponenten du verwendet hast.

Es gibt mittlerweile die Version 9 (10 is noch Entwicklungsstadium), für die es auch Installer gibt für Delphi5. Demzufolge braucht man mit Delphi5 nicht die Finger von ftp Verbindungen lassen.

masterchris_99 2. Mai 2007 14:19

Re: Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi
 
Hallo,

Ich habe auch das Problem das mein Prog hängen bleibt sobald keine passende Datei im Ordner liegt.

Zitat:

gsIdProductName = 'Indy'; {do not localize}
gsIdVersion = '9.00.10'; {do not localize}
Delphi 7


Try Except hat nichts gebracht

Delphi-Quellcode:
var ftplist: TStrings;

ftplist := TStringList.Create;

  try
    IdFTP1.List(ftplist,'*.exp',false);
  except
    Raise;
  end;
Also wenn eine Datei vorhanden ist ist alles gar kein Problem aber es bleibt hängen wenn keine Datei drinliegt.
mit und ohne try except block.

Was kann ich tun?

SirThornberry 2. Mai 2007 15:08

Re: Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi
 
das einfachste wäre ein "FileExists". Und besser wäre im Quelltext einfach durchzusteppen um den Fehler für das hängen bleiben zu finden und gegebenfalls zu berichtigen. Eventuell schafft eine aktuelle Indyversion auch Abhilfe.

masterchris_99 2. Mai 2007 15:26

Re: Anzahl von Dateien in FTP-Verzeichnis auslesen in Delphi
 
naja fileexists geht ja nicht weil ich nicht weiss wie die dateien heißen ich weiss nur das ich alle *.exp brauche.
und der quelltext ist in ordnung ich habe die neuste 10er raufgepackt und nun macht er es ohne probleme.


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