2013-05-30 3 views
0

Мне нужно удалить последние 3 строки текстового файла и или переписать последние три строки с помощью ActionScript 3.0AS3: Удалите строки из текстового файла в AS3

Я понимаю, как добавить файл, но я потерян о том, как подсчитывать строки с использованием фильтра.

+0

Итак, вы хотите знать, как посчитать строки с помощью файла поток или вы хотите знать, как управлять объектом String, чтобы удалить последние 3 строки и добавить новые линии? Кроме того, что вы пробовали? Покажите нам свой код. –

ответ

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(); 
Смежные вопросы