2011-12-04 91 views
1

我一直在一個項目工作一段時間,但卡住了,我有一個包含這種格式的一組數字的文本文件:從閱讀txt文件組數字

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

我建議加入代碼,您的問題將指示編程語言。 – ghik

+2

請使用適當的編程語言 –

+0

來標記您的問題,它可能是JavaScript的樣本,除非我錯過了一些不好的東西。 – Jon

回答

1

split \n \r到陣列之前(以循環讀取)

與......一樣 -

在循環迴路得到多維數組

記住結果是一個「表」

終於得到一個結果做到這一點。

variable[file][column] 
a[2][3] ----> 4 

+0

感謝它的不退出,你告訴我,但循環思路中的循環幫助了我。 –

+0

謝謝! D-Mx,很難寫出一個沒有特定語言的實際功能的例子 – Llanis

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

這會給你一個二維數組,你的那樣訪問這:

textArray[0][0]; // result: 1 
textArray[2][3]; 

et cetera。

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

}