本帖最后由 xyold1 于 2011-3-10 19:13 编辑
试着用下这个函数(改自A版)在1维或2维数组的末尾添加指定的值,2维数组的列数还可以增加的
Func __ArrayAdd(ByRef $avArray, $vValue0, $vValue1 = '', $vValue2 = '',$vValue3 = '',$0_auto = 1)
;说明:在1维或2维数组的第2维为2的数组末尾添加指定的值。(修改自原_ArrayAdd函数)
;Afan提示:$0_auto参数为1时自动判断0号元素的值是否为数组的数量-1,是则自动+1。
;~ MsgBox(0,0,UBound($avArray, 0))
If Not IsArray($avArray) Then Return SetError(1, 0, -1)
Local $iUBound = UBound($avArray)
If UBound($avArray, 0) = 1 Then
If $0_auto And $avArray[0] = $iUBound - 1 Then $avArray[0] += 1
ReDim $avArray[$iUBound + 1]
$avArray[$iUBound] = $vValue0
ElseIf UBound($avArray, 0) = 2 And UBound($avArray, 2) = 2 Then
If UBound($avArray, 2) <> 2 Then Return SetError(2, 0, -1)
If $0_auto And $avArray[0][0] = $iUBound - 1 Then $avArray[0][0] += 1
ReDim $avArray[$iUBound + 1][2]
$avArray[$iUBound][0] = $vValue0
$avArray[$iUBound][1] = $vValue1
ElseIf UBound($avArray, 0) = 2 And UBound($avArray, 2) =3 Then ;判断是否为2维数组,如果是3列
If UBound($avArray, 2) <> 3 Then Return SetError(2, 0, -1) ;
If $0_auto And $avArray[0][0] = $iUBound - 1 Then $avArray[0][0] += 1
ReDim $avArray[$iUBound + 1][3]
$avArray[$iUBound][0] = $vValue0
$avArray[$iUBound][1] = $vValue1
$avArray[$iUBound][2] = $vValue2
;~ MsgBox(0,0,$avArray[$iUBound][2])
ElseIf UBound($avArray, 0) = 2 And UBound($avArray, 2) =4 Then ;如果是4列
If UBound($avArray, 2) <> 4 Then Return SetError(2, 0, -1)
If $0_auto And $avArray[0][0] = $iUBound - 1 Then $avArray[0][0] += 1
ReDim $avArray[$iUBound + 1][4]
$avArray[$iUBound][0] = $vValue0
$avArray[$iUBound][1] = $vValue1
$avArray[$iUBound][2] = $vValue2
$avArray[$iUBound][3] = $vValue3
ElseIf UBound($avArray, 0) > 2 Then
Return SetError(3, 0, -1)
EndIf
Return $iUBound
EndFunc ;==>__ArrayAdd
|