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

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

  • [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