怎样定义三维数组?【已解决】
本帖最后由 blue_dvd 于 2013-1-7 17:05 编辑怎样定义三维数组?
论坛搜到P大的方法Local $aTotal = [$aArray0, $aArray1, $aArray2, ..., ..., $aArray11]
$aArray_0 = $aTotal
MsgBox(0, "", $aArray_0)可惜运行编译出错!
哪位高手能有办法?主要用一个数组来管理不同的二维数组! 定义一个一维数组,把每个数组项塞一个二维数组进去就行了 回复 2# kevinch
能给个例子吗? 回复 3# blue_dvd
#include'ARRAY.AU3'
Local $M=[['1','2'],['A','B']],$N=[['3','4'],['X','Y']]
Local $A=[$M,$N]
_ArrayDisplay($A) 本帖最后由 blue_dvd 于 2013-1-6 23:58 编辑
回复 4# annybaby
能否这样
$arr1=二维数组
$arr2=二维数组
$arr3=二维数组
写成
for $i=1 to 3
$arr&$i=二维数组
next
就是不一个个写,用循环的方法写
可惜$arr&$i总是错!
有好的方法吗?
先谢了! 回复 5# blue_dvd
贴可以F5的码`~
出错不要紧~ #include <array.au3>
Dim $arr
For $n=0 To UBound($arr)-1
$r=Random(3,9,1)
$c=Random(3,9,1)
Dim $arr2[$r][$c]
For $i=0 To UBound($arr2)-1
For $t=0 To UBound($arr2,2)-1
$arr2[$i][$t]=Random(1,9,1)
Next
Next
$arr[$n]=$arr2
Next
For $n=0 To UBound($arr)-1
_ArrayDisplay($arr[$n])
Next这个例子够生动了吧 三维数组貌似用excel比较合适 回复 1# blue_dvd
你想把数组放在另一个数组里面做为一个元素(象C语言里那样)?若是这个意思,au3里没有直接的方法干这事的,因为au3并没有给变量单独的地址空间。但可以间接地通过一个变量来得到嵌入数组的入口,这样做虽然可以,但会使得code非常地不可读性,特别在传递这个数组时,非常容易搞错。
Local $arr
Local $a1 =
Local $a2 =
$arr = $a1
$arr = $a2
$arr = 2
Local $dumy
For $i = 1 to $arr
$dumy = $arr[$i]
If IsArray($dumy) Then
For $j = 1 to $dumy
ConsoleWrite("$i:=" & $i & ", $dumy[" & $j & "]:=" & $dumy[$j] & @LF)
Next
Else
ConsoleWrite("!>Oops!, What happened? Expected an array!" & @LF)
EndIf
Next
若不是上面意思,那就直接定义个三维数组就可以了,有什么问题呢?
Global $aArray = [[["000", "001"], ["010", "011"], ["020", "021"], ["030", "031"]], _
[["100", "101"], ["110", "111"], ["120", "121"], ["130", "131"]], _
[["200", "201"], ["210", "211"], ["220", "221"], ["230", "231"]]]
ConsoleWrite($aArray & @CRLF)
直接定义三维数组即可
Global $aArray
不过数组维度并非越多越好,数组定义出来要操作,多维数组缺少封装好的自定义操作函数,自己封装也麻烦
能用一维尽量不要用二维,勉强能用二维解决就不要往更多的维度思考了…… 本帖最后由 blue_dvd 于 2013-1-7 11:45 编辑
终于搞定了
$oexcel=ObjCreate("excel.application")
$oexcel.visible=False
$wb=$oexcel.workbooks.open($sFilePath1)
Local $iTemp = $wb.Sheets.Count
Local $iarr[$iTemp ]
For $i=1 To $iTemp
$arr=$wb.worksheets($i).usedrange.value
$iarr[ $i-1]= Array2DColsToRows($arr)
Next
For $i=1 To $iTemp
_ArrayDisplay($iarr[$i-1])
Next
$wb.close(true)
$oexcel.quit
思路是:把Excel中的工作表(二维数组)读取后,用一维数组管理!
感谢kevinch ,happytc 提供思路代码帮助! 回复 4# annybaby
你的是二维数据吧
页:
[1]