找回密码
 加入
搜索
查看: 2947|回复: 6

[AU3基础] 如何动态创建一个数组

  [复制链接]
发表于 2010-8-19 10:39:50 | 显示全部楼层 |阅读模式
动态创建一个数组,变量限定大小的,比如$Array[$i]





急求,高手解答下!tks
发表于 2010-8-19 12:07:57 | 显示全部楼层
我个人理解,这样的情况下得先确定 $i 的值再创建。

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

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

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-8-19 16:28:06 | 显示全部楼层
曾经我也为了这个问题非常头痛,好长一段时间无从解决,后来发觉为何不转过来想,为什么要动态数据?无非就是无法确定这个数组到底有多大,既然不知道你多大,管你有多大,每次需要填入数据的时候我再ReDim一次呗,至此,这个问题再也不受困扰了
发表于 2010-8-20 00:00:09 | 显示全部楼层
试验证明,当ReDim一个数组变量时,以前的数组元素还是继续存在的,比方说:
Global $a[3] = [1, 2, 3]
ReDim $a[4]
此时,$a[0],$a[1],$a[2]的值分别是1,2,3,而$a[3]是空值。
如果是:
Global $a[3] = [1, 2, 3]
ReDim $a[2]

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

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

评分

参与人数 1金钱 +20 收起 理由
republican + 20 学习了~~~

查看全部评分

 楼主| 发表于 2010-8-23 16:24:20 | 显示全部楼层
還是不太明白,如果我用FileReadLine()讀去某個txt文本的內容,怎麼樣才能把它寫到已數組里去
发表于 2010-8-23 16:59:41 | 显示全部楼层
试验证明,,比方说:
Global $a[3] = [1, 2, 3]
ReDim $a[4]
此时,$a[0],$a[1],$a[2]的值分别是1,2,3, ...
foboy 发表于 2010-8-20 00:00

但好像 redim了不同维度的数组会丢失
发表于 2010-8-23 17:13:49 | 显示全部楼层
#include <array.au3>
Dim $num[1]
$num[0]=0
For $i=1 To 100
        $num[0]+=1
        ReDim $num[$num[0]+1]
        $num[$num[0]]=Random(1,100)
Next
_ArrayDisplay($num)
不同维度是可以转换的,这并不是问题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 07:19 , Processed in 0.081248 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表