# Dateisuchfunktion in Visual Basic6



## Kosh (14. August 2002)

Ich möchte ein Programm zum suchen von Dateien schreiben. Ziel ist es daß das Programm die Dateien aufspüren soll welchen länger als die von mir eingebene Zeichenlänge haben, oder Sonderzeichen beinhalten. Ich hab ein Laufwerk,- ein dir und ein Fileelement erzeugt. Die dienen dazu den Pfad der Suche zu bestimmen. Dann soll auf Suchen geglickt werden und er soll alle die Dateien in einer Liste darstellen die mehr als 28 Zeichen haben und Sonderzeichen beinhalten. Aber ich hab keinen Schimmer wie ich das anstellen soll.


----------



## Dario Linsky (14. August 2002)

wie man in einem bestimmten verzeichnis dateien suchen kann, kriegt man schnell raus, indem man einfach hier im board sucht. stichworte "findfirst", "findnext", "findclose".
da dürftest du einiges an code finden, den du dann einfach anpasst. an deiner stelle würd ich einfach überprüfen, ob die datei grösser als 28 byte ist, eine bestimmte endung und bestimmte eigenschaften hat. und dann würde ich die datei öffnen, nach einem zeichen suchen, und in die liste der suchergebnisse aufnehmen. 
gibt aber sicher auch einfachere wege, sowas zu machen.


----------



## Kosh (14. August 2002)

Es geht halt darum daß berstimmte Dateien auf dem mac nicht lesbar sind weil sie halt zu lang sind oder Sonderzeichen enthalten, deshalb wollte ich ein vb Programm schreiben was die Dateien sucht und auflistet.


----------



## Kosh (14. August 2002)

Sorry aba hab niox gefunden unter findfirst und findnext.


----------



## Dario Linsky (14. August 2002)

möglichkeiten, dateien aus einem verzeichnis aufzulisten, gibt es hier: http://tutorials.de/showthread.php?threadid=20785
in der schleife prüfst du dann einfach die eigenschaften der jeweils gefundenen datei.


----------



## Kosh (14. August 2002)

Genau so was such ich, aber das Programm soll die Unterverzeichnisse gleich mit durchsuchen.


----------



## Dario Linsky (14. August 2002)

dann musst du die funktion einfach nur rekursiv aufrufen. wenn das gefundene element aus dem verzeichnis vom die eigenschaft *vbDirectory* hat, nimmst du den namen davon und rufst die funktion für das gefundene verzeichnis auf.


----------



## Kosh (14. August 2002)

Sorry aber das hab ich jetzt echt net kapiert


----------



## Kosh (14. August 2002)

Könntest du mir das vieleicht an einem Bsp. zeigen? Sorry das ich so doof bin.


----------



## Dario Linsky (14. August 2002)

das was du brauchst, nennt man "rekursives durchsuchen". dabei rufst du eine funktion zum durchsuchen eines vorgegebenen verzeichnisses auf. diese funktion ermittelt alle objekte im übergebenen verzeichnis und prüft, ob das jeweils gefundene objekt ein unterverzeichnis ist.
wenn ein unterverzeichnis gefunden wurde, dann ruft die funktion sich selber auf, wodurch das unterverzeichnis zuerst durchsucht wird. das geht immer so weiter, bis alle unterverzeichnisse komplett durchsucht worden sind.

beispielcode hab ich hier schonmal gepostet.


----------



## Daniel Toplak (15. August 2002)

> "rekursives durchsuchen"


Echt sowas geht in VB, huch hab ich gar net gewusst, aber ist das dann net saulangsam, ich kenn Rekursionen nur von C. Gibt es da bei VB eigentlich irgendwelche Grenzen (Rekursionstiefe usw.)

Gruss Homer


----------



## Dario Linsky (15. August 2002)

klar, das geht _eigentlich_ mit jeder programmiersprache. das ist ja nur eine funktion, die sich selber aufruft - das sollte nicht unbedingt ein problem darstellen. man muss nur darauf achten, dass es keine endlosschleife wird.
mit vb ist das zwar nicht sonderlich schnell, aber immer noch der übliche weg, verzeichnisse zu durchsuchen. ob es da grenzen gibt, weiss ich gerade nicht, aber ich versuch gerne mal was darüber in erfahrung zu bringen.


----------

