gmjimmy 发表于 2009-12-9 03:37:59

AU3有没有变量宏替换这种用法的?

比如说我有三个变量$i,$a1,$a2
当$i=1时,操作的对象是$a1,
当$i=2时,操作的对象是$a2,
现在两个变量当然用if...else...可以,但如果有一千几百个,有没其它语言这种直接把$i代入$a?这种操作方式?
谢绝数组。
最主要是了解AU3有没这种用法。

gmjimmy 发表于 2009-12-9 07:35:47

早上再过来顶顶,看有没人知道

水木子 发表于 2009-12-9 08:47:17

本帖最后由 水木子 于 2009-12-9 08:48 编辑

Au3当然也可以。

条件运行语句.
Select
    Case <表达式>
      语句1
      ...
    [Case <表达式>
      语句2
      ...]
    [Case Else
      语句N
      ...]
EndSelect

不过LZ有1千多个,这么多条件用这个显然很繁琐。
不知能不能UDF来写,待高手来帮你解答吧!

gmjimmy 发表于 2009-12-9 10:07:20

呵,楼上的没理解我什么意思,可能是我表达的不好
我的意思象其它语言一样用代入的方式,
并不需要用分叉
例如我给程序的是$d$i+=1,系统就会帮$d1加1

wisly 发表于 2009-12-9 10:24:15

用Eval啊


$a1=1
$a2=2
For $i=1 to 2
        ConsoleWrite(Eval('a'&$i)&@LF)
Next

gmjimmy 发表于 2009-12-10 00:46:05

谢谢楼上的,狠好,单变量可以这样做:
比如说有变量$a1,$a2,$a3......$an
现在根据$i的值来决定上面哪个变量加1
assign("a"&$i,eval("a"&$i)+1)
问题解决!!!

再来一个问题
如果我的变量不是这么简单,
我有N个数组:$a1,$a2,$a3.....$an
我现在要根据$i的值来决定把内容添加到相应的数组中,
比如$i=1,则加到$a1中,
比如$i=3,则加到$a3中,
。。。。。。

newx 发表于 2009-12-10 01:02:34

dim $a[$i]

gmjimmy 发表于 2009-12-10 06:05:00

dim $a[$n][$x]
好主意
不过,我这里$a1......$an因为实际情况不同,其下标会不一样,如果统一起来的话。。。。只能取最大的,不只浪费内存,而且不好操作。。。。
页: [1]
查看完整版本: AU3有没有变量宏替换这种用法的?