_Func_ArrayAdd_2dim (Version zum Adden von 2 Dimensionale Arrays)

  • Vieleicht kann das ja jemand brauchen ... da dies scheinbar von Autoit nicht angeboten wird.
    Hiermit hast du ein _ArrayADD für 2 dimensionale Raid.
    Das Autoiit _arrayadd unterstützt scheinbar nur 1 dimensionale Arrays

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

    #region #### Includes ============================================================================================================
    #include-once
    #include
    #endregion ======================================================================================================================

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

    #cs
    #CURRENT# =====================================================================================================================
    _ArrayAdd_2dim
    #CURRENT# =====================================================================================================================
    #ce

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

    ; #Function - _ArrayAdd_2dim ======================================================================================================================================
    ; Parameters ....: $avArray = Array to add with additional Array
    ; $newARRAY = aditional Array
    ; Error .........: 1 = Master Array is no Array
    ; 2 = add. Array is no Array
    ; 3 = Master Array is no 2D Array
    ; 4 = add. Array is no 2D Array
    ; Return ........: 0 = All OK
    ; Description ...: to ad a 2dimensional Array to another 2 dimensional Arry
    ; ==========================================================================================================================================================================

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

    Func _ArrayAdd_2dim(ByRef $avArray, $newARRAY)
    If Not IsArray($avArray) Then Return SetError(1, 0, -1)
    If Not IsArray($newArray) Then Return SetError(2, 0, -1)
    If UBound($avArray, 0) <> 2 Then Return SetError(3, 0, -1)
    If UBound($newARRAY, 0) <> 2 Then Return SetError(4, 0, -1)
    Local $i, $j,$jj

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

    ;##################################################################
    ;### check which Array is the Biggest
    ;##################################################################

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

    If UBound($avArray,2) > UBound($newARRAY,2) then $newdim = UBound($avArray,2)
    If UBound($avArray,2) < UBound($newARRAY,2) then $newdim = UBound($newARRAY,2)

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

    ;##################################################################
    ;### Redim the Array Size if
    ;##################################################################

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

    ReDim $avArray[(UBound($avArray,1))+(UBound($newARRAY,1))][$newdim] ; 1 Array zeile hinzufügen

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

    ;##################################################################
    ;### add the Array
    ;##################################################################

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

    for $i = (UBound($avArray)-1) to (UBound($avArray))-(UBound($newARRAY)) Step -1
    $j = UBound($newARRAY)-$jj-1
    for $k = 0 to (UBound($newARRAY,2)-1)
    ConsoleWrite('+$avArray['&$i&']['&$k&'] = $newARRAY['&$j&']['&$k&']'&@CRLF)
    $avArray[$i][$k] = $newARRAY[$j][$k]
    Next
    ConsoleWrite(@CRLF)
    $jj +=1
    Next
    ;~ _ArrayDisplay($avArray)
    return(0)
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • Tja ... gesucht habe ich wie ein Irrer nach einem derartigen Modul :-/
    musste ewig herumprobieren bis es ging ...

    aber das von Arraymore sieht nicht schlecht aus

  • Zeile 25 sollte die nicht

    [autoit]

    If Not IsArray($newARRAY) Then Return SetError(2, 0, -1)

    [/autoit]

    heißen? :P