Я пытаюсь разобрать текстовый файл, загруженный в Actionscript 3.0, помогите пожалуйста - PullRequest
1 голос
/ 22 апреля 2010

Все, что я могу найти информацию для объекта URLLoader в Actionscript 3.0, включает загрузку файлов XML, что я не хочу делать.Я пытаюсь загрузить в файл .txt, который я хочу проанализировать, построчно, каждая строка разделяется запятой.Кто-нибудь знает способ сделать это или место, где я могу найти некоторую информацию о том, как это сделать?Спасибо!

Ответы [ 3 ]

2 голосов
/ 22 апреля 2010

Посмотрите на методы String split () для запуска. Он разбивает строку на массив на основе разделителя. В вашем случае вы бы обращались к каждой строке как к элементу массива, возвращаемого с помощью split () и символа запятой.

, например

var csvLoader:URLLoader = new URLLoader(new URLRequest('yourFile.csv'));
csvLoader.addEventListener(Event.COMPLETE, csvLoaded);

function csvLoaded(event:Event):void{
   var lines:Array = String(event.target.data).split(',');
   var linesNum:int = lines.length;
   for(var i:int = 0 ; i < linesNum; i++){
      trace('line ' + i + ': ' + lines[i]);
   }
}

Вы можете использовать event.target.data.split (','), я использовал String, чтобы сделать происхождение split () очевидным.

Учебное пособие @ dhdean довольно круто, с учетом того, что это as2.0, поэтому есть небольшие различия с загрузкой файла, но строки синтаксического анализа должны быть почти такими же в as2.0 / as3.0

В зависимости от вашего уровня комфорта с as3.0 вы можете взглянуть на csvlib .

НТН, George

1 голос
/ 22 апреля 2010

Для любого примера, который работает с файлами XML, вам просто нужно удалить строку с надписью "new XML ()"

Например, в этом примере на http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLLoader.html#load()

У вас есть следующий пример:

   private function loaderCompleteHandler(event:Event):void {

            try {
                externalXML = new XML(loader.data);
                readNodes(externalXML);    
            } catch (e:TypeError) {
                trace("Could not parse the XML file.");
            }
    }

Ваши текстовые данные находятся в переменной "loader.data"

Использование

var arr:Array = loader.data.split(",");

вернет массив, разделенный запятой.

1 голос
/ 22 апреля 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...