本帖最后由 annybaby 于 2011-6-8 19:50 编辑
查看了帮助
-------------
当你在脚本里使用数组之前, 你必须使用关键字'Dim'来定义它的维数.
-----------------
由于需要对原始数据特定的部分内容进行变换处理,所以用_filereadtoarray('test.txt',$array)读入后还需要再将每行的内容进行分割,所以想将数组的每行内容进行正则替换,字符分割后再赋值到一个新的数组,问题是原始文件行数大小相差较大,本想用$newarray[$array[0]][10]来定义,可惜总是出错,当用常数来定义就没有问题`~
********************************************************************
首先,谢谢楼下两位筒子的回帖,问题已经解决了,原来不是这个原因,数组的维度是可以通过变量来定义的,只要在定义时,该变量的值已经是可以确定
原来出错的原因是:
在使用正则替换原始数据时,因为有用的信息会被空格和(或)制表符(两者的位置和数量都不固定),所以我打算用'\s+'来替换成一个空格,谁知打少了一个'+',只用了'\s',导致后面拆分后的个数大于的$newarray[$array[0]][10]中的[10],越界了,才有了今天的杯具~~
那为什么我改成了常数后又木有问题呢??原来还直接编辑了一下原始的文本文件,将制表符删除了
;数组维度定义测试
#include<array.au3>
#include<file.au3>
Global $array
_FileReadToArray(@DesktopDir & '\test.txt', $array)
Global $test[$array[0]][12]
For $i = 1 To $array[0]
$array[$i] = StringRegExpReplace($array[$i], '\s+'," ") ;就是这里了,少了一个'+'
$str = StringSplit($array[$i]," ")
For $j = 1 To $str[0]
$test[$i-1][$j-1] = $str[$j]
Next
Next
|