xiaosen666m 发表于 2010-8-19 10:39:50

如何动态创建一个数组

动态创建一个数组,变量限定大小的,比如$Array[$i]





急求,高手解答下!tks

水木子 发表于 2010-8-19 12:07:57

我个人理解,这样的情况下得先确定 $i 的值再创建。

当然也可以先创建一个空数组,再向数组中添加元素,不过这样效率不高,不推荐!

还有个办法是利用 Assign 和 Eval 俩函数的配合,替代数组,这样出来的效率是非常高的,推荐!(当然这要看情况而定)

jhun 发表于 2010-8-19 16:28:06

曾经我也为了这个问题非常头痛,好长一段时间无从解决,后来发觉为何不转过来想,为什么要动态数据?无非就是无法确定这个数组到底有多大,既然不知道你多大,管你有多大,每次需要填入数据的时候我再ReDim一次呗,至此,这个问题再也不受困扰了

foboy 发表于 2010-8-20 00:00:09

试验证明,当ReDim一个数组变量时,以前的数组元素还是继续存在的,比方说:
Global $a =
ReDim $a
此时,$a,$a,$a的值分别是1,2,3,而$a是空值。
如果是:
Global $a =
ReDim $a

$a,$a的值还是分别为1,2

所以个人认为楼主可以先Global 一个数组,需要改变大小时直接ReDim

xiaosen666m 发表于 2010-8-23 16:24:20

還是不太明白,如果我用FileReadLine()讀去某個txt文本的內容,怎麼樣才能把它寫到已數組里去

rolaka 发表于 2010-8-23 16:59:41

试验证明,,比方说:
Global $a =
ReDim $a
此时,$a,$a,$a的值分别是1,2,3, ...
foboy 发表于 2010-8-20 00:00 http://www.autoitx.com/images/common/back.gif
但好像 redim了不同维度的数组会丢失

大绯狼 发表于 2010-8-23 17:13:49

#include <array.au3>
Dim $num
$num=0
For $i=1 To 100
        $num+=1
        ReDim $num[$num+1]
        $num[$num]=Random(1,100)
Next
_ArrayDisplay($num)不同维度是可以转换的,这并不是问题
页: [1]
查看完整版本: 如何动态创建一个数组