Как загрузить файл ASCII в массив с помощью ActionScript 3 - PullRequest
0 голосов
/ 05 октября 2019

Друзья мои, На самом деле я новичок в AS3. Я хочу прочитать внешний текстовый файл, а затем загрузить его в три массива. Текстовый файл имеет 3 столбца, например, что-то вроде этого

Freq Mag Phase

2000 10 56

2200 8,2 -140

2600 14 -120

... ... ...

Я хочу три массива, каждый из которых содержит значения из каждого столбца, например, "freqArray" должен быть [2000 2200 2400] Iбыл бы очень признателен за вашу помощь. Там есть несколько полезных частей кода. Я использую приведенный ниже код, например, но проблема в том, что 1) он не разделяет пробелы между столбцами, он просто разделяет строки 2) я предполагаю, что записи в массиве являются символами, а не числами.

var myLoader:URLLoader = new URLLoader(new URLRequest("myText.txt");
var myArray:Array = new Array();

myLoader.addEventListener(Event.COMPLETE, loadComplete, false, 0, true);

function loadComplete(e:Event):void{
myArray = myLoader.data.split("\n");

for(var i:int = 0; i < myArray.length; ++i){
    trace(myArray[i]);                         // To check if it works at this point
}

//now move on with the rest of your program/code

}

1 Ответ

0 голосов
/ 17 октября 2019

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

  • (1) Он не разделяет пробелы между столбцами, он просто разделяет строки
  • (2) Я полагаю, что записи в массиве являются символами, а не числами.

(1) Он отделяется новой строкой из-за вашего "\n". См. пример ссылки .

Если вы хотите вместо этого ПРОБЕЛ, просто поставьте пробел между кавычками.

myArray = myLoader.data.split(" ");

(2) Выможно преобразовать текст (записанный в виде цифр) в фактические числа путем приведения данных .

  • Set int Если вы хотите целых чисел, например:myVar = int( myArray[x] ); //x holds the 2200.

  • Установить Number Если у вас есть дробь чисел, например: myVar = Number( myArray[x] ); //x hold 8.2.

где: x - это позиция внутри массива, в которой есть значение, которое вы хотите разыграть.

Более быстрый прием, позволяющий избежать создания какой-либо новой переменной (myVar), может быть похож на ...

myArray[x] = int( myArray[x] ); //just overwrite the current text chars with actual integer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...