从文本文件中读取一组数字

时间:2011-12-04 20:52:22

标签: actionscript-3 file numbers text-files

我已经在一个项目上工作了一段时间,但在我有一个包含这种格式的数字的文本文件的地方卡住了:

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);
}

3 个答案:

答案 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++;
    }

}