_ArrayDisplay mehrere Spalten

  • Hallo,

    ich habe mehrere Arrays per Suche definiert!
    Wie kann ich nun auf die Array-Ergebnisse zugreifen?

    _ArrayDisplay zeigt alles in Zeilen.
    Ich brauche aber mehrere Spalten!

    Hier mein Code

    [autoit]


    #include <Array.au3>
    $sSource = ClipGet()

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

    $2D = StringRegExp($sSource, '(?:Schmidt|Meier)|(Peter|Klaus)', 3)

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

    _ArrayDisplay($2D)

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

    For $i = 0 To UBound($2D) - 1
    ;
    Next

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

    ;Zwischenablage

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

    ;Heinz Schmidt
    ;Iris Meier
    ;Peter Bauer
    ;Klaus Klein

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

    Das wären die Spalten
    Spalte 0 Nachnamen
    Spalte 1 Vornamen

    Grüße
    Ilse ;)

    Einmal editiert, zuletzt von Ilse (1. August 2011 um 18:40)

  • Hallo,

    merci für deine Hilfe.
    Genau das ist ja das Problem.
    Ich habe ja mit RegEx durch die Klammern (Array1)...(Array2)
    2 Dimensionen.
    Bleibt die Frage, wie man das so darstellen kann.

    0 |Array 1 |Array 2
    1 |Array 1 |Array 2

    hab nochmal meinen Code
    m. Zwischenablage beigefügt.
    Einfach Code in Zwischenablage kopieren und starten.

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Local $sText, $aArray, $sString
    $sSource = ClipGet()

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

    $aArray = StringRegExp($sSource, '(?:Schmidt|Meier)|(Peter|Klaus)', 3)

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

    _ArrayDisplay($aArray,"tet")

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

    For $i = 0 To UBound($aArray) - 1
    ;$sString &= '$' & $aArray[$i + 1] & ' = "' & $aArray[$i] & '"' & @CRLF
    MsgBox(0,"",$aArray[$i])
    Next

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

    ;Zwischenablage

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

    ;Heinz Schmidt
    ;Iris Meier
    ;Peter Bauer
    ;Klaus Klein
    ;Heinz Schmidt
    ;Iris Meier
    ;Peter Bauer
    ;Klaus Klein
    ;Heinz Schmidt
    ;Iris Meier
    ;Peter Bauer
    ;Klaus Klein

    [/autoit]


    Grüße
    Ilse ;)

  • StringRegExp Gibt immer ein eindimensionales Array mit allen gefundenen ergebnissen zurück diese sind nur unterteilt nach ihren Gruppen. Also alles was innerhalb von "()" steht, kommt in eine Gruppe. Das nächste Ergebnis in eine weitere usw.
    Dadurch wird das Array nicht zweidimensional. Außerdem sind Spalten nicht gleich Dimensionen. Wenn ich z.B. ein 2 dimensionales Array habe, dann kann ich sagen die erste Dimension repräsentiert die Spalten und die 2te die Reihen.
    Die Anzahl der Spalten wäre dann die Größe der ersten Dimension.
    Wenn du deine Ergebnisse noch anders aufteilen willst, dann musst du das noch selbst in einer For- Schleife o.Ä. machen.

  • Hallo name22,

    kannst du mir vielleicht ein Beispiel machen
    wie ich z.B. die 2 Klammern der Suche (suche1) und (suche2) in einer Zeile anzeigen kann?

    Also in der Schleife?

    ;) Ilse

  • Zum Beispiel so. Aber das geht vielleicht auch einfacher. Wie soll das denn nachher sortiert werden? :huh:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    $aTest = "Wert A1:WertA2" & @CRLF & "Wert B1:WertB2" & @CRLF & "Wert C1:WertC2" & @CRLF & "Wert D1:WertD2"

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

    $aResult = StringRegExp($aTest, "(.+):(.+)", 3)
    Dim $aNewResult[UBound($aResult) / 2][2] ;Neues 2D Array in das die Werte aus dem ersten sortiert werden.

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

    For $i = 0 To UBound($aResult) -1 Step 2
    $aNewResult[Floor($i / 2)][0] = $aResult[$i]
    $aNewResult[Floor($i / 2)][1] = $aResult[$i + 1]
    Next

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

    _ArrayDisplay($aResult) ;Alt
    _ArrayDisplay($aNewResult) ;Neu

    [/autoit]
  • Hallo name22,

    genau so, werde mal alles testen.
    Über die Sortierung habe ich mir noch gar keine Gedanken gemacht ?(

    Auf jedennfall DANKE, das bringt mich nun etwas weiter.

    Liebe Grüße
    Ilse ;)