Suchfunktion

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mabox

Betreff: Suchfunktion

BeitragMo, März 02, 2009 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, mich nervt die Windows Suchfunktion weil die einfach nicht alles anzeigt. Jetzt hab ich mir eine eigene Suchfunktion gecodet, aber irgendwo hakts noch.
Am Anfang gibt man einen Suchbegriff ein, welcher dann in einem Verzeichnis und in dessen Unterverzeichnissen gesucht werden soll. Wenn ich das Progamm im Debugmodus starte, kommt die Meldung: "Directory doesn't exist" und die Zeile Code: [AUSKLAPPEN]
Local datei$ = NextFile(Ordner)
ist markiert.

hier ist noch der komplette QuellCode: [AUSKLAPPEN]
Suchbegriff$ = Input("Suchbegriff eingeben: ")
suchen("C:\",Suchbegriff$)
AppTitle "ready!"
WaitKey()

Function suchen(Pfad$,wort$)
   AppTitle "'"+wort$ + "' in " + Pfad$ + " suchen"
   Local Ordner = ReadDir(Pfad$)
   Local datei$ = NextFile(Ordner)
   While datei$ <> ""
      datei$ = NextFile(Ordner)
      If datei$<>"." Then
         If datei$<>".." Then
            If datei$="" Then Exit
            If FileType(Pfad$+"\"+datei$) = 1 Then
               If Instr(datei$,wort$) Then
                  Print Pfad$+"\"+datei$
               EndIf
            ElseIf FileType(Pfad$+"\"+datei$) = 2 Then
               suchen(Pfad$+"\"+datei$,wort$)
            EndIf
         EndIf
      EndIf
   Wend
   CloseDir Ordner
End Function

Findet einer von euch den Fehler?

Ach und bevor ich es Vergesse...in der Forensuche hab ich schon geschaut und bin auf einige Ähnliche Programme gestoßen, bei denen aber genau derselbe Fehler auftrat. Kann es sein, dass es an Windows Vista liegt? denn bei den anderen scheint es schlussendlich funktioniert zu haben...

~EDIT: Mir fällt grad noch ein, das es nützlich wäre, wenn man die gefundene Datei (oder das Verzeichnis in dem die Datei ist) direkt öffnen könnte. Gibt es eine Möglichkeit das zu tun?
Geht das vielleicht über das "Ausführen" programm? damit kann man ja jede Datei oder jedes Verzeichnis offnen. Die Frage wär dann nur wie man dem Ausführen Programm mitteilt was geöffnet werden soll.
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, März 02, 2009 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habs ausprobiert und es funktioniert einwandfrei unter XP

Welche BB Version benutzt du?

Mit ExecFile kannst du die Datei gleich mit dem passenden Programm öffnen
[BB2D | BB3D | BB+]

mabox

BeitragMo, März 02, 2009 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
hab die neuste Version von Blitz3D....muss wohl irgendwie an Vista liegen. Weis jemand wie ich das Programm Vista kompatibel hinbekomme?

ah stimmt...hatte den Befehlt Execfile ganz vergessen Rolling Eyes
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage
 

BadDeath

BeitragMo, März 02, 2009 22:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liegt daran, dass man unter Vista nicht in alle Ordner rein darf - glaube ich, denn so geht es:

Code: [AUSKLAPPEN]
Suchbegriff$ = Input("Suchbegriff eingeben: ")
suchen("C:\",Suchbegriff$)
AppTitle "ready!"
WaitKey()

Function suchen(Pfad$,wort$)
   AppTitle "'"+wort$ + "' in " + Pfad$ + " suchen"
   Local Ordner = ReadDir(Pfad$)
   If ordner <> 0 Then
      Local datei$ = NextFile(Ordner)
      While datei$ <> ""
         datei$ = NextFile(Ordner)
         If datei$<>"." Then
            If datei$<>".." Then
            If datei$="" Then Exit
               If FileType(Pfad$+"\"+datei$) = 1 Then
                  If Instr(datei$,wort$) Then
                     Print Pfad$+"\"+datei$
                  EndIf
               ElseIf FileType(Pfad$+"\"+datei$) = 2 Then
                  suchen(Pfad$+"\"+datei$,wort$)
               EndIf
            EndIf
         EndIf
      Wend
      CloseDir Ordner
   End If
End Function


Allerdings durchsucht man so eben nicht alle Ordner, wie "Dokumente und Einstellungen".
-~= real coders just code in binary =~-

mabox

BeitragMo, März 02, 2009 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ok Vielen Dank!
warscheinlich kann man daran dann auch nicht viel ändern wenn man die Ordner nicht durchsuchen darf.
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl
Dönerfresser Homepage

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group