Adobe AIR readLine - PullRequest
       4

Adobe AIR readLine

1 голос
/ 07 декабря 2010

Мне нужно обрабатывать текстовый файл по одной строке за раз.В бейсике я мог использовать команду readline, которая будет читать до следующего возврата каретки / перевода строки.Как бы вы написали функцию для цикла по файлу по одной строке в AIR?

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

1 Ответ

0 голосов
/ 08 декабря 2010
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.');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...