au3数组操作的疑问
本帖最后由 itljl 于 2009-12-31 16:35 编辑我需要向一个二维数组的末尾添加数据。
我现在用的方法是:(数组为:$ManArray)
$u = UBound($ManArray);获得长度
ReDim $ManArray[$u + 1];修改长度
;增加
$ManArray[$u] = $aConnected[$i] ;Socket
$ManArray[$u] = $aConnected[$i] ;IP
$ManArray += 1 ;设置数组0号记录的数组长度+1
我看了数组操作的自定函数,只支持向一维数据添加数据,不支持向二维数据添加。
二维数据添加有更简单的办法吗? 本帖最后由 afan 于 2009-12-31 15:23 编辑
自定义函数吧,和 _ArrayAdd 差不多的
p.s, 标题请改详细些~ 本帖最后由 afan 于 2009-12-30 23:40 编辑
回复 1# itljl
修改了原函数“_ArrayAdd()”为“__ArrayAdd()”;修改了原函数“_ArrayAdd()”为“__ArrayAdd()”,增加支持2维数组及自动判断0号元素。
;操作1维、2维数组例子:
#include <Array.au3>
Local $avArray
$avArray = "Tom"
$avArray = "Holger"
$avArray = "Jon"
$avArray = "Larry"
$avArray = "Jeremy"
$avArray = "Valik"
$avArray = "Cyberslug"
$avArray = "Nutster"
$avArray = "JdeB"
$avArray = "Tylo"
_ArrayDisplay($avArray, "原1维数组")
__ArrayAdd($avArray, "Brian")
_ArrayDisplay($avArray, "增加后")
Local $avArray = []
$avArray = "Holger"
$avArray = "Holger111"
$avArray = "Jon"
$avArray = "Jon1111"
_ArrayDisplay($avArray, "原2维数组")
__ArrayAdd($avArray, "Brian", 'Brian111')
__ArrayAdd($avArray, "abcdefg", 'abcdefg111')
__ArrayAdd($avArray, "dgdhhf", 'fhdfhf111')
_ArrayDisplay($avArray, "增加后")
Func __ArrayAdd(ByRef $avArray, $vValue0, $vValue1 = '', $0_auto = 1)
;说明:在1维或2维数组末尾添加指定的值。(修改自原_ArrayAdd函数)
;Afan提示:$0_auto参数为1时自动判断0号元素的值是否为数组的数量-1,是则自动+1。
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 = $iUBound-1 Then $avArray += 1
ReDim $avArray[$iUBound + 1]
$avArray[$iUBound] = $vValue0
ElseIf UBound($avArray, 0) = 2 Then
If $0_auto And $avArray = $iUBound-1 Then $avArray += 1
ReDim $avArray[$iUBound + 1]
$avArray[$iUBound] = $vValue0
$avArray[$iUBound] = $vValue1
ElseIf UBound($avArray, 0) > 2 Then
Return SetError(2, 0, -1)
EndIf
Return $iUBound
EndFunc ;==>__ArrayAdd 谢谢楼上的朋友,我还在用3.3正式版 高人高人高人
页:
[1]