Hilfe bei regex o.ä. um zeilenweise Inhalte aus einer Datei in ein Array zu schreiben

  • Ursprung war folgendes:
    Benötige die passenenden Pattern für "0585. Fehler :" bis ans Zeilenende wobei 0585 variabel ist von 0001 - 9999(9)
    Die Anführungszeichen sind natürlich nicht enthalten und normalerweise ist der num. Wert 4 stellig ggf. vielleicht mal 5stellig

    [autoit]

    StringRegExp($a_db_log_content,'\d{4}. Fehler',3)

    [/autoit]

    funktioniert bei mir fast, es fehlt noch das Ergebnis bis End of Line

    Umweg mit Hilfe einer Datei wäre vom Ergebnis schon gut würde es aber lieber ohne Datei auskommen.

    [autoit]

    RunWait("find " & $f_db_log_file & " " & '"Fehler"' & " >> e:\test.txt")

    [/autoit]

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    Einmal editiert, zuletzt von Dietmar (10. September 2011 um 13:57)

  • [autoit]

    StringRegExp($a_db_log_content, '\d{4}. Fehler.*',3)

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • [autoit]

    $a_db_log_summary = StringRegExp($a_db_log_content, '\d{4}. (?i:FEHLER.*)',3)

    [/autoit]


    macht nu das was es soll :thumbup:

    Besten dank Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Verdammt wäre auch zu schön wenn alles direkt klappt. :)

    Ein Problem muss ich noch gelöst bekommen. Und zwar gibt es wohl Logeinträge welche über mehrere Zeilen gehen.

    Habe es für mich erst einmal so gelöst.

    [autoit]

    If StringLen($a_db_log_summary[$i_log_cnt]) > 120 Then $a_db_log_summary[$i_log_cnt] = StringLeft($a_db_log_summary[$i_log_cnt],120) & "..."

    [/autoit]

    Gruß Dietmar

    Evtl. hat ja noch jemand eine Idee um den Inhalt also ruhig nur die ersten 120 Zeichen zu erhalten
    aber evtl. vorhandene @CR/CRLF am ende zu entsorgen.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Vielleicht hilft dir ja

    [autoit]

    StringStripWS

    [/autoit]


    oder eine der anderen Strip Funktionen dabei