StrindMid - nur Zahlen

  • Hey, ich wollte fragen, ob es eine Möglichkeit gibt, nur Zahlen aus einer bestimmten Reihe
    auslesen zu können.

    Bis jetzt habe ich mit StringMid aus einer Datei.txt ab Zeile zehn vier Zahlen/Buchstaben auslesen können.
    Könnte man das Script jetzt so verändern, dass in Zeile 1 von Datei.txt alle vorhandenen Zahlen von links nach
    rechts ausgelesen werden und sodass keine Buchstaben etc. einbezogen werden?

    Bis jetzt sieht das ganze so aus:

    [autoit]

    $test = StringMid(FileReadLine(Datei.txt, 1), 10, 4)
    MsgBox(4096, "", $test)

    [/autoit]

    Damit möchte ich bestimmte Werte auslesen und ggf. das Script auf einen veränderten Wert
    anpassen.

    LG, Max

    2 Mal editiert, zuletzt von MaxChri (26. September 2014 um 17:25) aus folgendem Grund: Thema mit Erklärung gelöst :)

  • Mithilfe von RegEx.

    [autoit]

    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    $s = "342foo1356bar325baz432"
    $a = StringRegExp($s, "(\d+)", 3)
    _ArrayDisplay($a)

    [/autoit]


    Sollte so funktionieren.

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Moin danke klappt ganz gut.

    Aber kann man $a auch in einer MsgBox einfügen, sodass
    die MsgBox die Zahl ebenfalls ausliest? Bei mir wird nur eine
    leere Box angezeigt.

    [autoit]


    MsgBox(0, "", $a)

    [/autoit]

    LG, Max

    Einmal editiert, zuletzt von MaxChri (26. September 2014 um 17:01)

  • Danke für den Hinweis :)

    So kann man ein array auslesen, falls es wer noch braucht:

    [autoit]

    MsgBox(0,"Meine Zelle ist:",$array[0]) ; 0 = die Zelle

    [/autoit]

    Wenn man den array nicht mehr haben will:

    [autoit]

    $a = $a[0]
    MsgBox(0, "", $a)

    [/autoit]

    LG, Max