Spezieller Stringsplit oder StringRegExp

  • Hallo Zusammen,
    Ich habe ein kleines Problem.

    [autoit]

    $sString = "abc" & @CR & "def" & @LF & "ghi" & @CRLF & "jkl" & " 0x0D " & "mno" & " 0x0A " & "pqr"
    #cs
    Wandle $sString in Array, so dass jedes Trennzeichen das nächste Array Element erzwingt.
    Die Trennzeichen müssen jeweils noch vorhanden sein! Und zwar sollen sie in dem vorherigen Array Element sein!
    Trennzeichen sind:
    @CR
    @LF
    @CRLF
    " 0x0D " (ohne Anführungszeichen, aber mit den Abständen vorher und nachher; entspricht @CR in Hex)
    " 0x0A " (ohne Anführungszeichen, aber mit den Abständen vorher und nachher; entspricht @LF in Hex)

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

    Das Array sollte dementsprechend nachher so aussehen:
    [0] "abc" & @CR
    [1] "def" & @LF
    [2] "ghi" & @CRLF
    [3] "jkl 0x0D "
    [4] "mno 0x0A "
    [5] "pqr"
    #ce

    [/autoit]

    Kann mir da wer helfen?
    Veronesi

    Einmal editiert, zuletzt von veronesi (27. April 2012 um 08:02)

  • Ich denke, ich habe nun selbst die Antwort gefunden :)

    [autoit]

    #include <Array.au3>
    $sString = "abc" & @CR & "def" & @LF & "ghi" & @CRLF & "jkl" & " 0x0D " & "mno" & " 0x0A " & "pqr"
    $sString = StringReplace($sString, @CRLF, @LF) ;Replace all @CRLF with @LF
    $sString = StringReplace($sString, @CR, @LF) ;Replace all @CR with @LF
    $sString = StringAddCR($sString) ;Replace all @LF with @CRLF
    $sString = StringReplace($sString, " 0x0D ", " 0x0D " & @CRLF)
    $sString = StringReplace($sString, " 0x0A ", " 0x0A " & @CRLF)
    $aString = StringSplit($sString, @CRLF, 1)
    _ArrayDisplay($aString)

    [/autoit]