Seite 1 von 3

Computer durchsuchen (Befehl gesucht)

Verfasst: 07.07.2006 15:13
von winduff
Guten Tach,

gibts eine möglichkeit, via einen Befehl (API?!) den Computer zu durchsuchen?

Meine vorstellung wäre evtl. so:

Search_(suche.s,typen.s,wo.s)
Search_("dokument",".txt","c:\dokumente und einstellungen")

Ich danke im vorraus :-)

Lg
Chris

Re: Computer durchsuchen (Befehl gesucht)

Verfasst: 07.07.2006 15:21
von Kiffi
Hai Chris,

> gibts eine möglichkeit, via einen Befehl (API?!) den Computer zu
> durchsuchen?

ein Befehl reicht da leider nicht aus. ;-)

http://www.purebasic.fr/german/viewtopic.php?t=7263

Grüße ... Kiffi

Verfasst: 07.07.2006 15:25
von winduff
Danke Kiffi :allright: Coole sache

Verfasst: 07.07.2006 17:04
von winduff
Soo, nun eine weitere Frage hierzu:

Der Computer muss extrem viele Dateien Suchen, das heisst:

Der Benutzer gibt etwas in einen Stringgadget ein: In dem moment wo eine Taste gedrückt wird, wird der Inhalt des Stringgadgets gelesen, die alte Suche abgebrochen und eine neue mit den neuen Daten angefangen.

Nun, dies erfordert seeehr viel Leistung vom Computer, vorallem wenn der Anwender schnell tippt. Ein Delay hilft nicht viel - von daher: Gibts eine weitere möglichkeit, dem Computer etwas mehr Zeit zu schenken?

Lg,

Chris

Re: Computer durchsuchen (Befehl gesucht)

Verfasst: 07.07.2006 17:12
von ts-soft
Kiffi hat geschrieben: ein Befehl reicht da leider nicht aus. ;-)

Code: Alles auswählen

PostMessage_(FindWindow_("ProgMan",0),$0100,$72,0)
:mrgreen:

Verfasst: 07.07.2006 17:16
von winduff
lol /:-> :twisted:

Verfasst: 07.07.2006 17:17
von Kiffi
winduff hat geschrieben:Nun, dies erfordert seeehr viel Leistung vom Computer, vorallem wenn der Anwender schnell tippt. Ein Delay hilft nicht viel - von daher: Gibts eine weitere möglichkeit, dem Computer etwas mehr Zeit zu schenken?
ich habe was ähnliches gemacht. Ich bin dabei so vorgegangen, dass bei
Eingabe in das StringGadget ein Counter gestartet wird und die Suche
dann nach einer Sekunde startet. Hier mal der Code dazu:

Code: Alles auswählen

Repeat
  
  Event = WaitWindowEvent()
  
  Select Event
    
    Case #PB_Event_Gadget
      
      GadgetID = EventGadget()
      
      If GadgetID = #txtInput
        
        ; Wenn in das txtInput-Gadget etwas eingetippt wurde,
        ; dann alle entsprechenden Einträge anzeigen
        
        lEM = ElapsedMilliseconds()
        lKeyPress = 1
        
      EndIf
      
    Default
      
      If lEM + 1000  < ElapsedMilliseconds() 

        If lKeyPress = 1
          
          If Len(GetGadgetText(#txtInput))>0 
            
            HideGadget(#LV,1)
            
            ; Jetzt geht's lohos!
            
            HideGadget(#LV,0)
            
          EndIf
        EndIf
        lKeyPress = 0
      EndIf
      
  EndSelect
  
Until Event = #PB_Event_CloseWindow
Grüße ... Kiffi

Verfasst: 07.07.2006 17:20
von Alves
Macht ihr das nicht mit Threads`?

Ist dch wesentlich besser, oder nciht?

Verfasst: 07.07.2006 17:23
von winduff
danke kiffi :-)

Verfasst: 07.07.2006 17:36
von Kiffi
Alves hat geschrieben:Macht ihr das nicht mit Threads`?
ich muss zugeben, dass der Code noch aus 3.94-Zeiten stammt (also als
Threads noch relativ 'absturzsicher' waren). Ob sich das 'heutzutage' mit Threads
besser lösen liesse, müsste man prüfen.

Aber der Zweck heiligt die Mittel. Ich habe mit meiner Methode keine
negativen Erfahrungen gemacht. ;-)

Grüße ... Kiffi