In Datei suchen

  • Hallo zusammen,


    in meinem Skript durchsuche ich den PC nach einer Datei.
    Anschließend möchte ich den Inhalt der Datei durchsuchen, ob ein String enthalten ist.
    Muss ich dazu FileRead und strininstring machen oder gibt es eine bessere Möglichkeit?


    LG FKFK

  • Moin,


    was meinst du mit String in dem Fall? Kann doch prinzipiell alles sein...
    Möchtest du zwischen Zahlen und Buchstaben unterscheiden?
    Oder eine Suchfunktion, die Dateien nach einer bestimmten (vom Benutzer) angegebenen Zeichenkette durchsucht?

  • Zitat

    Muss ich dazu FileRead und strininstring machen oder gibt es eine bessere Möglichkeit?


    Ja, das wäre schon mal eine Möglichkeit.
    Ich glaube aber, dass es noch besser (schneller) wäre, größere Dateien zuerst in einzelne Zeilen/Abschnitte zu zerlegen.
    Eine Alternative zu StringInStr(...) wäre dabei StringRegExp(...), da reguläre Ausdrücke genutzt werden können und somit auch beispielsweise leicht nach mehreren Strings gesucht werden kann.


    Google sollte dir dabei auch helfen, besonders einige Links zum englischen Forum.


    Ansonsten gibt es schon derartige Suchprogramme, die schneller sind als sämtliche (pure) AutoIt Versionen, wie z.B. SearchMyFiles.

  • Wenns unbedingt Autoit sein muss, würde ich das so in der Art angehen:

  • Hi,


    Stringinstr() ist SEHR schnell, wenn man das casesensitive-flag setzt. Also ca. 7-8x schneller als "ohne"


    stringinstr($text,$suchstring) = "langsam"
    stringinstr($text,$suchstring,1) ist also wesentlich schneller


    "langsam" bedeutet, auf meinem Rechner findet Stringinstr() am Ende einer 52MB (!) großen Datei einen Suchstring mit 40 Zeichen innerhalb 2 Sekunden.
    Mit gesetztem casesensitiv-flag wird der Suchtext in 250ms gefunden....
    Vergleich Suchfunktionen