AGB  ·  Datenschutz  ·  Impressum  







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

INDY ftp.list problem

Ein Thema von marteng57 · begonnen am 7. Jan 2010 · letzter Beitrag vom 22. Mär 2012
Antwort Antwort
Seite 3 von 3     123   
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#21

Re: INDY ftp.list problem

  Alt 9. Jan 2010, 00:32
also wir haben bereits herausgefunden, dass -wenn man eine stringliste als paramter übergibt- diese stringliste als TStringList deklariert sein muss und nicht als TStrings. Bei TStrings scheint es zu krachen...
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#22

Re: INDY ftp.list problem

  Alt 9. Jan 2010, 11:08
Hallo Martin,

Zitat von marteng57:
es muss definitiv am List liegen, ich habe auch auf der Indy-Projectsite einen Hinweis gefunden, dass der List-Befehl in Version 10 ganz neu implementiert wurde. Dafür gibt es jetzt einen Parser mit vielen verschiedenen Listformaten. Es ist mir aber nicht klar, welches er zieht, offensichtlich gibt es da in den neueren Versionen auch verbesserungen. Ich habe noch die Originalversion von D 2009 (Wo kann man diese Versionsnummer denn auslesen?)

Werde mal versuchen auf die neueste Version upzudaten.
Ich habe es gerade mal mit einer frischen D2009 Installation für Dich getestet: Es funktioniert bei mir.

Testcode:
Delphi-Quellcode:
IdFTP1.Host := 'ftp.**.de'; // mein FTP Server
IdFTP1.Username := '**'; // ...
IdFTP1.Password := '**'; // ...
IdFTP1.Connect;
IdFTP1.List;
ShowMessage(IdFTP1.ListResult.Text);
Also nur ein leeres VCL Projekt mit dem IdFTP.

Die Info auf den meisten Indy Seiten ist mangels Betreuer veraltet. Indy 10 ist ja nun schon ein paar Järchen da...

Deshalb meine Bitte nochmal: Teste mal bitte mit einem Protokoll/Netzwerk-Sniffer, was bei Dir passiert. Ob eine lokale Firewall o.ä. da im Weg steht, vielleicht auch ein NAT-Router. Ohne Analyse des Netzwerkverkehrs wirst Du da nicht weiterkommen!

Viele Grüße,

Assertor
Frederik
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#23

Re: INDY ftp.list problem

  Alt 9. Jan 2010, 11:20
Hallo Morphie,

Zitat von Morphie:
also wir haben bereits herausgefunden, dass -wenn man eine stringliste als paramter übergibt- diese stringliste als TStringList deklariert sein muss und nicht als TStrings. Bei TStrings scheint es zu krachen...
TStrings ist doch auch die abstrakte Basisklasse von Delphi für StringListen, das kann also nicht gehen...

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
marteng57

Registriert seit: 6. Jun 2009
16 Beiträge
 
RAD-Studio 2009 Pro
 
#24

Re: INDY ftp.list problem

  Alt 9. Jan 2010, 12:45
Hallo,

das Problem ist gelöst, auch wenn ich nicht mehr ganz genau sagen kann, auf welchem Wege.
Es war wohl eine Kombination aus benötigtem passive Modus, firewall und ....

idfp.list funktioniert im Übrigen sowohl mit TStrings als auch mit Tstringlist.
Nur wenn das Ergebnis über ListResult abgeholt wird ist TStrings zwingend.

Dafür scheint die überladene Definition von List mit Filter und Details nicht zu greifen, es kommt immer das Gesamtergebnis. Aber das ist nicht schlimm, ich kann es ja nachher filtern.

Vielen Dank für die Hilfe, insbesondere an morphie.

Danke und Gruß
Martin
Martin
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#25

Re: INDY ftp.list problem

  Alt 9. Jan 2010, 13:08
Es sollte definitiv ein Nachfahre von TStrings sein um zu verhindern das es kracht. Denn TStrings ist eine Basisklasse mit recht vielen abstrakten Methoden. Wenn du weiterhin eine Instanz von TStrings übergibst brauchst du dich nicht wundern wenn an irgend einer Stelle etwas nicht funktioniert.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#26

Re: INDY ftp.list problem

  Alt 9. Jan 2010, 13:19
Hallo Martin,

Zitat von marteng57:
das Problem ist gelöst, auch wenn ich nicht mehr ganz genau sagen kann, auf welchem Wege.
Es war wohl eine Kombination aus benötigtem passive Modus, firewall und ....
Das freut mich, siehste: War doch nicht das Indy FTP.List

Zitat von marteng57:
idfp.list funktioniert im Übrigen sowohl mit TStrings als auch mit Tstringlist.
Nur wenn das Ergebnis über ListResult abgeholt wird ist TStrings zwingend.

Dafür scheint die überladene Definition von List mit Filter und Details nicht zu greifen, es kommt immer das Gesamtergebnis. Aber das ist nicht schlimm, ich kann es ja nachher filtern.
Das verstehe ich nicht.

IdFTP.List() gibt es in 3 Varianten:
1) procedure TIdFTP.List;
2) procedure TIdFTP.List(const ASpecifier: string; ADetails: Boolean);
3) procedure TIdFTP.List(ADest: TStrings; const ASpecifier: string = ''; ADetails: Boolean = True);

bei 1) und 2) laden die Resultate in IdFTP.ListResult und bei 3) in Deinem eigenen TStrings-Nachfahren. ADetails steuert nur, ob z.B. die Verzeichnis/Gruppenrechte ausgelesen werden.

Wenn hier trotzdem Details kommen, muß da von uns geprüft werden. Das könnte ein Bug sein.

Für das korrekte Parsing der Liste (es gibt ja viele FTP Server die beim Listenresult abweichen) immer wie oben erwähnt die IdAllFTPListParsers einbinden. Dann werden entsprechende Behandlungen für VMS & Co eingebunden.

Zu den TStrings/StringList, aus der englischen D2009 OH:
Zitat:
Derive a class from TStrings to store and manipulate a list of strings. TStrings contains abstract or, in C++ terminology, pure virtual methods and should not be directly instantiated.
Wir verwenden also - wie eigentlich alle Komponentenentwickler - TStrings, damit der Benutzer die Rückgabe mit TStringList und anderen Nachfahren nutzen kann.

Roter Kasten: SirThornberry war schneller

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#27

Re: INDY ftp.list problem

  Alt 9. Jan 2010, 15:12
Zitat von marteng57:
...
idfp.list funktioniert im Übrigen sowohl mit TStrings als auch mit Tstringlist.
Nur wenn das Ergebnis über ListResult abgeholt wird ist TStrings zwingend.
...
also da stimme ich dir nicht zu.
verwende ich nur TStrings, bekomme ich sofort folgenden Fehler:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EAbstractError mit der Meldung 'Abstrakter Fehler' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------


verwende ich TStringList, funzt es ohne probleme.

Fazit: man sollte -wie Assertor bereits erwähnte- einen nachfahren verwenden.
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#28

AW: INDY ftp.list problem

  Alt 22. Mär 2012, 16:45
Ich habe den gleichen oder mindestens einen ähnlichen Fehler wie im Ursprungsposting beschrieben. List mit indys FTP Client funktioniert nicht.

Delphi 2009
Indy 10.5.8

Problem (Source aufs Wesentliche gekürzt und Fehlerbehandlung entfernt):
Delphi-Quellcode:
IdFTP1.Host:= Edt_server.Text;
IdFTP1.Username:= Edt_User.Text;
IdFTP1.Password:= Edt_Password.Text;
IdFTP1.Connect;
IdFTP1.ChangeDir(Edt_Directory.Text);

IdFTP1.List; // Fehler: Gleitkommadivision durch Null

//Idftp1.list(mylist); //Fehler: Gleitkommadivision durch Null
//Idftp1.list(mylist, '', True); //Fehler: Gleitkommadivision durch Null
//Idftp1.list(mylist, '', False); //Fehler: Gleitkommadivision durch Null
Anmeldung am Server funktioniert
ChangeDir funktioniert
Put und Get funktionieren problemlos

Mit Overbyte ICS funktioniert auf dem gleichen Rechner und gleichen Server der Zugriff per FTP problemlos, nur erlauben mir die Programmspezifikationen die Verwendung von ICS nicht. Unter Delphi 7 funktioniert obiger Code mit indy problemlos.

Ich habe bereits mit allen Properties von IdFTP rumgespielt, Firewalls ausgeschaltet, Indy aktualisiert, aber nichts brachte Erfolg. Hat jemand einen Tip was ich noch versuchen könnte?

[edit] Fehler für Gleitkommadivision gefunden, war ein Fehler von mir, hatte noch was in IdFTP1Work drin, aber die Liste ist immer noch leer![/edit]

[edit2] Problem gelöst! Ein Update des FTP-Servers brachte die Lösung![/edit2]

Geändert von bernerbaer (22. Mär 2012 um 17:35 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 17:54 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