读取文本文件并拆分字符串并推入数组

时间:2009-05-25 06:51:56

标签: flash actionscript-3

HI,

我正在阅读文本文件

1 =苹果 2 =插孔 3 =柠檬 4 =香蕉

    var loader:URLLoader = URLLoader(event.target);
var mystring :String = loader.data;
 tempArray = mystring.split("\n");  

并获得类似

的值

1 =苹果

2 =杰克

3 =柠檬

4 =香蕉

我需要将值拆分并推入数组,例如“删除”=“和”结束空间“

“1 = apple”将该值分为1和apple。 “2 = jack”将该值分为2和jack。

并使用1 2 3 ...作为索引推入名为fruits数组的新数组;

水果[1] = “苹果”; 水果[2] = “插口”;柠檬 水果[3] = “柠檬”;

提前致谢

3 个答案:

答案 0 :(得分:1)

我知道这可能被认为是一个不充分的答案,但是:

为什么不使用XML? XML文件在AS中非常容易阅读,它们总是带有简单文本文件难以提供的结构......

举个例子:

<fruits>
    <fruit index="1" name="Apple" />
    <fruit index="2" name="Jack" />
    <fruit index="3" name="Lemon" />
    <fruit index="4" name="Banana" />
</fruits>

AS就像是:

var fruits:Array = new Array();
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function()
{
    var nodes:Array = this.firstChild.childNodes;
    for(var i=0; i<nodes.length; i++)
        fruits.push(nodes[i].name);        // *
}
xml.load(xmlFile);

如果你坚持使用文件中的索引,带*的行可以替换为fruits [nodes [i] .index] = nodes [i] .name。

答案 1 :(得分:0)

您是否尝试过此而不是拆分为换行符,

tempArray = mystring.split(" ");

...并分别处理数组中的每个元素,以便在每个元素的“=”符号之前去除任何内容。

答案 2 :(得分:0)

试试这个:

var lines:Array /* of String */ = String(loader.data).split(/ *\n */);
var fruits:Array = [];
for each (var line:String in lines) {
    var tokens:Array /* of String */ = line.split('=');
    fruits[int(tokens[0])] = tokens[1];
}