• Offizieller Beitrag

    Kurz und knapp:

    _Array2DJoin(ByRef $ARRAY, $ARR2JOIN)

    fügt den Inhalt des als $ARR2JOIN übergebenen Arrays zum $ARRAY hinzu.

    - 1D können mit 2D -Arrays gemischt werden
    - 2D -Arrays können unterschiedlich große 2.te Dimensionen haben

    Spoiler anzeigen
    [autoit]

    ;----------------------------------------------------------------------------------------------------------------------
    ; Fuction _Array2DJoin(ByRef $ARRAY, $AR2JOIN)
    ;
    ; Description Join 2 Arrays, 1D/2D can be mixed
    ;
    ; Parameter $ARRAY 1st array, will be joined with 2nd
    ; $AR2JOIN 2nd array
    ;
    ; Return Succes -1 ByRef $ARRAY
    ; Failure 0 set @error = 1; given array(s) are not array
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    Func _Array2DJoin(ByRef $ARRAY, $AR2JOIN)
    If ( Not IsArray($ARRAY) ) Or ( Not IsArray($AR2JOIN) ) Then
    SetError(1)
    Return 0
    EndIf
    Local $UB2ndAR = UBound($ARRAY,2)
    If @error = 2 Then $UB2ndAR = 0
    Local $UB2nd2JOIN = UBound($AR2JOIN,2)
    If @error = 2 Then $UB2nd2JOIN = 0
    Select
    Case $UB2ndAR = 0 And $UB2nd2JOIN = 0
    For $i = 0 To UBound($AR2JOIN)-1
    ReDim $ARRAY[UBound($ARRAY)+1]
    $ARRAY[UBound($ARRAY)-1] = $AR2JOIN[$i]
    Next
    Return -1
    Case $UB2ndAR > 0 And $UB2nd2JOIN = 0
    Local $arTmp = $AR2JOIN
    ReDim $AR2JOIN[UBound($AR2JOIN)][$UB2ndAR]
    For $i = 0 To UBound($arTmp)-1
    $AR2JOIN[$i][0] = $arTmp[$i]
    Next
    Case $UB2ndAR = 0 And $UB2nd2JOIN > 0
    Local $arTmp = $ARRAY
    ReDim $ARRAY[UBound($ARRAY)][$UB2nd2JOIN]
    For $i = 0 To UBound($arTmp)-1
    $ARRAY[$i][0] = $arTmp[$i]
    Next
    Case $UB2ndAR > 0 And $UB2nd2JOIN > 0
    Select
    Case $UB2ndAR < $UB2nd2JOIN
    ReDim $ARRAY[UBound($ARRAY)][$UB2nd2JOIN]
    Case $UB2ndAR > $UB2nd2JOIN
    ReDim $AR2JOIN[UBound($AR2JOIN)][$UB2ndAR]
    EndSelect
    EndSelect
    For $i = 0 To UBound($AR2JOIN)-1
    ReDim $ARRAY[UBound($ARRAY)+1][UBound($ARRAY,2)]
    For $k = 0 To UBound($AR2JOIN,2)-1
    $ARRAY[UBound($ARRAY)-1][$k] = $AR2JOIN[$i][$k]
    Next
    Next
    Return -1
    EndFunc

    [/autoit]