String einmal teilen nach erstem Leerzeichen

  • Hallo,

    ich habe einen String in ungefähr folgender Form: 24264 9249 2425
    Nun habe ich mit StringSplit den String geteilt mit dem Delimiter " ".
    Das Problem ist nun das der String aber auch so aussehen kann : 2425 2424 2424 2442 242424

    => Ich weiß nicht wie viele Einträge das Array dann am Ende hat.
    Nun möchte ich am Ende 2 Strings haben. String 1 geht bis zum ersten Leerzeichen und String 2 einfach der Rest.

    Ich hab jetzt überlegt wie ich das anstelle. Kompliziert würde es doch gehen, wenn ich eine Schleife mache die so oft durchläuft wie das Array groß ist.
    Dann einfach ein Block in den ersten String und den rest in den zweiten String.

    Gibt es da noch eine einfacherer Variante?

    Die restlichen Leerzeichen sollen auch noch entfernt werden.


    Grüße

    Einmal editiert, zuletzt von leedian (1. März 2010 um 18:28)

  • Hi,

    [autoit]


    $string = "24264 9249 2425"
    $pos = StringInStr ($string, " ")

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

    MsgBox (0,"", "String 1 =" & StringLeft ($string, $pos -1) & @CRLF & "String 2=" & StringReplace (StringMid ($string, $pos + 1), " ", ""))

    [/autoit]

    ;-))
    Stefan

  • Hallo,

    [autoit]

    #include <Array.au3>
    $sString = "2252 3535 23523 2424"

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

    ;Entweder:
    $aSplit = StringRegExp($sString, "([^ ]+) (.+)", 3)
    _ArrayDisplay($aSplit)

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

    ;oder:
    $aSplit = StringSplit($sString, " ", 2)
    For $i = 2 To UBound($aSplit) - 1
    $aSplit[1] &= " " & $aSplit[$i]
    Next
    ReDim $aSplit[2]

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

    _ArrayDisplay($aSplit)

    [/autoit]
  • cool Danke! Mit so tollen Lösungen hätte ich so schnell nicht gerechnet ;)
    Hab mich für die von ojo entschieden, weil die am kürzesten ist :)