2010-12-06 24 views
1

一度に1行ずつテキストファイルを処理する必要があります。 BASICでは、readlineコマンドを使うことができました。これは、次の改行/改行まで読み込みます。 AIRでは、一度に1行ずつファイルをループする関数をどのように記述しますか?Adob​​e AIR readLine

var myDir = air.File.documentsDirectory; 
var myFile = myDir.resolvePath("Test.txt"); 
if (myFile.exists) { 
    var myFileStream = new air.FileStream(); 
    myFileStream.open(myFile, air.FileMode.READ); 
    var myByteArray = new air.ByteArray(); 
    myFileStream.readBytes(myByteArray,0,myFileStream.bytesAvailable); 
    air.Introspector.Console.log(myByteArray.length); 
} else { 
    alert ('File not found.'); 
} 

答えて

0
var LineNumber; 
var ItemCode; 
var OrderCode; 
var Qty; 

var myDir = air.File.documentsDirectory; 
var myFile = myDir.resolvePath("Test.txt"); 
if (myFile.exists) { 
    var myFileStream = new air.FileStream(); 
    myFileStream.open(myFile, air.FileMode.READ); 
    var myData = new air.ByteArray(); 
    myFileStream.readBytes(myData,0,myFileStream.bytesAvailable); 
    var str = myData.toString(); 
    var Pos = 0; 
    var Tab = 0; 
    var CRLF = 0; 
    EOL = str.indexOf("\r",Pos); 
    while (EOL > 0) { 
     Tab = str.indexOf('\t',Pos); 
     LineNumber = str.substring(Pos,Tab); 
     Pos = Tab + 1; 
     Tab = str.indexOf('\t',Pos); 
     ItemCode = str.substring(Pos,Tab); 
     Pos = Tab + 1; 
     Tab = str.indexOf('\t',Pos); 
     OrderCode = str.substring(Pos,Tab); 
     Pos = Tab + 1; 
     CRLF = str.indexOf('\r',Pos); 
     Qty = str.substring(Pos,CRLF); 
     Pos = EOL+1; 
     EOL = str.indexOf("\r",Pos); 

    } 

} else { 
    alert ('File not found.'); 
}