fenhanxue 发表于 2017-4-1 02:03:31

如何 表示 数组 中的数组【已解决】

本帖最后由 fenhanxue 于 2017-4-1 22:27 编辑

Local $a =
Local $b =

Local $c

$c = $a
$c = $b

Local $d = $a



;以        $a = 2 为例子
;要表示$a = 2
;        1)如果用d来表示,可以这样写,即
        MsgBox(0,' $a的值为',$d)

;        2)如何用c来表示?这样写好像是错误的
        MsgBox(0,' $a的值为',$c)答案:
需要一个()   即

MsgBox(0,' $a的值为',($c))

afan 发表于 2017-4-1 10:21:18

本帖最后由 afan 于 2017-4-1 13:42 编辑

较高版本的Au3支持直接引用表达式的元素,因此可以直接写为 MsgBox(0,' $a的值为',($c))

否则Au3版本不支持则需再转一次
Local $c1 = $c
MsgBox(0,' $a的值为',$c1)

heroxianf 发表于 2017-4-1 13:16:20

回复 2# afan

也许楼主想 转换成二维数组,至少我看到我就想这么做。

heroxianf 发表于 2017-4-1 13:39:31

回复 1# fenhanxue

还有一种冷门用法

Local $a =
Local $b =
Local $c

$c = $a
$c = $b

Local $d = $a

MsgBox(0, ' $a的值为', $d)
MsgBox(0, ' $a的值为', ($c))

afan 发表于 2017-4-1 13:43:16

回复afan

也许楼主想 转换成二维数组,至少我看到我就想这么做。
heroxianf 发表于 2017-4-1 13:16 http://www.autoitx.com/images/common/back.gif


    这跟二维数组是两回事…

heroxianf 发表于 2017-4-1 13:49:32

回复 5# afan


    {:face (197):} 其实是我想这么做,自己还不知道怎么弄

afan 发表于 2017-4-1 14:08:48

回复afan


   其实是我想这么做,自己还不知道怎么弄
heroxianf 发表于 2017-4-1 13:49 http://www.autoitx.com/images/common/back.gif


    循环填充#Include <Array.au3>

Local $a = ['a1', 'a2']
Local $b = ['b1', 'b2', 'b3']

Local $c = _2dArr($a, $b)
_ArrayDisplay($c)

Func _2dArr($a, $b)
        If Not IsArray($a) Or Not IsArray($b) Then Return SetError(1)
        Local $iMax = UBound($a), $c = $a
        If UBound($b) > $iMax Then $iMax = UBound($b)
        ReDim $c[$iMax], $a[$iMax], $b[$iMax]
        For $i = 0 To $iMax - 1
                $c[$i] = $a[$i]
                $c[$i] = $b[$i]
        Next
        Return $c
EndFunc   ;==>_2dArr

heroxianf 发表于 2017-4-1 15:04:47

回复 7# afan


    谢谢A大下来认真学习

kk_lee69 发表于 2017-4-1 22:19:40

回复 8# heroxianf

二維也行吧舊版的 無法支援這個表示法

但是新版的 可以呀!!

DIM $a
$a="A0"
$a="A1"
$a="B0"
$a="B1"
_ArrayDisplay($a)

DIM $b

$b="Y0"
$b=$a
$b="Z0"
$b="Z1"
_ArrayDisplay($b)

MsgBox(0,0, ($b))

fenhanxue 发表于 2017-4-1 22:25:12

回复 4# heroxianf


原来加个()就能用c来正确表示了,学到了新技能。。。

heroxianf 发表于 2017-4-2 11:48:29

回复 9# kk_lee69

是的 新版才可以,不过我用3.3.12可以执行、也是自己那个时候想这么输出

帆船 发表于 2017-4-2 22:51:05

回复 2# afan
我发现用这种表示方法可以显示但是不能赋值啊??
Global $aArray =
$aArray = $aArray
MsgBox(0, "", ($aArray) & @CRLF & ($aArray))
($aArray) = 1
($aArray) = 2
MsgBox(0, "", ($aArray) & @CRLF & ($aArray))

afan 发表于 2017-4-2 23:14:31

回复afan
我发现用这种表示方法可以显示但是不能赋值啊??
帆船 发表于 2017-4-2 22:51 http://www.autoitx.com/images/common/back.gif


    应该是的,只能引用,不能变更

dingcool 发表于 2017-4-6 22:33:27

我想把C++代码转成autoit代码
    c代码如下:
      byte M[] = {0,1};
      char* Zfc[] = {"zifuchuan1","zifuchuan2"};
      bool = func(M, Zfc);



func函数是dll中的,我想用dllcall调用,怎么把两个字符串传递到func中

dingcool 发表于 2017-4-6 22:34:06

回复 13# afan


    我想把C++代码转成autoit代码
   
      byte M[] = {0,1};
      char* Zfc[] = {"zifuchuan1","zifuchuan2"};
      bool = func(M, Zfc);



func函数是dll中的,不能重写。
我想用dllcall调用,怎么把两个字符串传递到func中
页: [1]
查看完整版本: 如何 表示 数组 中的数组【已解决】