我已经在一个项目上工作了一段时间,但在我有一个包含这种格式的数字的文本文件的地方卡住了:
1-2-3-4
1-2-3-4
1-2-3-4
1-2-3-4
所以我必须从文件中读取数字并根据列将它们放在一个数组中,所以最后我有
column1:Array (1,1,1,1)
column2:Array (2,2,2,2)
.....等等。我无法想象如何做到这一点。
我设法做的是读取所有文件并将所有数字都放在1个数组中但只是那个。
这是代码
var myTextLoader:URLLoader = new URLLoader;
var txtArray:Array;
myTextLoader.load(new URLRequest(inputFile.text));
myTextLoader.addEventListener(Event.COMPLETE,onLoaded);
function onLoaded(e:Event):void
{
txtArray = e.target.data.split(/\-|\n/g);
}
答案 0 :(得分:1)
在split \n \r
到数组之前(用循环读取)
和...一样 -
循环循环以获取多维数组
记住结果是“表格”
最后得到一个结果。
variable[file][column]
a[2][3] ----> 4
)
答案 1 :(得分:0)
尝试将其分为两部分,先是逐行,然后是元素:
function onLoaded(e:Event):void
{
preArray:Array = e.target.data.split(/\n/g);
txtArray = new Array();
for(var i:int = 0; i < preArray.length; i++) {
txtArray.push(preArray[i].split(/\-/g));
}
}
这将为您提供一个2D数组,您可以像这样访问:
textArray[0][0]; // result: 1
textArray[2][3];
等等。
答案 2 :(得分:0)
感谢Llanis给我的想法。这是我的最终代码。对不起,我没有标记它从未发给我的语言我是新的。
myTextLoader.load(new URLRequest(inputWX.text));
myTextLoader.addEventListener(Event.COMPLETE,onLoaded);
function onLoaded(e:Event):void
{
txtArray = e.target.data.split(/\-|\n/g);
var wArray:Array = new Array(txtArray.length/4);
var xArray:Array = new Array(txtArray.length/4);
var yArray:Array = new Array(txtArray.length/4);
var zArray:Array = new Array(txtArray.length/4);
var a:int = 0;
var b:int = 0;
var c:int = 0;
var d:int = 0;
var columna:int = 1;
for(var arrayIndex:int = 0; arrayIndex <= txtArray.length-1;arrayIndex++)
{
switch(columna){
case 1: wArray[a] = txtArray[arrayIndex]; a+=1;
break;
case 2: xArray[b] = txtArray[arrayIndex]; b+=1;
break;
case 3: yArray[c] = txtArray[arrayIndex]; c+=1;
break;
case 4: zArray[d] = txtArray[arrayIndex]; d+=1;
break;
}
if(columna == 4)
columna = 1;
else columna++;
}
}