2013-05-30 94 views
0

刪除線,我需要刪除最後3行的文本文件和或者使用ActionScript 3.0AS3:從文本文件在AS3

我知道如何添加一個文件重寫了最後三行,但我失去的關於如何使用文件流計數行。

+0

所以,你想知道如何計算使用文件行流或者你想知道如何操作一個String對象來刪除最後3行並追加新行?另外,你有什麼嘗試?你能告訴我們你的代碼到目前爲止。 – 2013-05-30 02:59:59

回答

1

或者嘗試:

private function trimTextFile(txtFile:File, trimNum:uint):Boolean{ 
    if(txtFile.exists){ 
     var stream:FileStream = new FileStream(); 
     stream.open(txtFile, FileMode.READ); 
     var tmp:Array = stream.readUTFBytes(stream.bytesAvailable).split("\n"); 
     stream.close(); 

     stream.open(txtFile, FileMode.WRITE); 
     for(var i:uint = 0; i < tmp.length - trimNum; i++){ 
      stream.writeUTFBytes(tmp[i] +"\n"); 
     } 
     stream.close(); 
     return true; 
    }else{ 
     return false; 
    } 

} 

,並調用它像這樣

this.trimTextFile(File.desktopDirectory.resolvePath("test.txt"), 3);

+0

這工作完美,我從來沒有使用過拆分,但查看後它有道理,似乎很簡單,謝謝你! – MadEste

+0

歡迎您:) 您能否接受答案,讓其他具有相同問題的人可能會覺得更容易:)? – codingbuddha

1

試試這個,

var loader:URLLoader = new URLLoader(); //Creating a loader object 
var myArray : Array; 
loader.addEventListener(Event.COMPLETE, onLoaded); //On complete event handler 

function onLoaded(e:Event):void { 
    var myArray:Array = e.target.data.split(/\n/); 
    //once you have all the lines as elements of the array you can change them 
    myArray[myArray.length -1] = "ABC"; 
    myArray[myArray.length -2] = "DEF"; 
    myArray[myArray.length -3] = "GHI"; 
} 

loader.load(new URLRequest("myFile.txt")); 

//Then write out the contents of the array, 

var f:File=new File("path\to\file.txt"); 
var handle:FileStream=new FileStream(); 
handle.open(f, FileMode.WRITE); 
handle.writeUTFBytes(myArray); 
handle.close();