xtanxin 发表于 2011-5-27 09:31:46

_ArrayAdd 支持二维数组吗? [已解决]

本帖最后由 xtanxin 于 2011-5-28 00:36 编辑

UDF的数组函数有不少,功能很特色,可是好像有些只是支持一位数组.但是没有说明,很郁闷.特地来问问大家.

Ziya 发表于 2011-5-27 10:25:40

@error: 1 - $avArray 不是数组
2 - $avArray 不是一维数组


说的很清楚啊,不是一维数组就会报错

netegg 发表于 2011-5-27 11:22:37

下一版exe的帮助我会加进去的

tryhi 发表于 2011-5-27 12:26:56

回复 1# xtanxin


你看一下那个函数你就会写一个加二维功能的了,用redim函数

netegg 发表于 2011-5-27 13:16:07

回复 4# tryhi
添加好说,排序,删除维数/元素....涉及的玩意想想看还挺多的

tryhi 发表于 2011-5-27 13:21:30

回复 5# netegg


    新版的这些都有集成么?

netegg 发表于 2011-5-27 13:33:00

回复 6# tryhi
看看情况,现在在翻译p侠那个库,抽空吧

222222 发表于 2011-5-27 14:01:08

;原版地址为超级版主afan的回复贴,此为原文照抄
;地址为:http://www.autoitx.com/thread-11646-1-1.html 第3楼
;修改了原函数“_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

3mile 发表于 2011-5-27 17:26:41

记得以前写过一个,请移步:
http://www.autoitx.com/forum.php?mod=viewthread&tid=17061&fromuid=7639113

xtanxin 发表于 2011-5-28 00:34:36

ok,感谢各位帮助,是在是脑子闷的比较头疼了.
页: [1]
查看完整版本: _ArrayAdd 支持二维数组吗? [已解决]