Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Данные из текста в Массив (http://www.flasher.ru/forum/showthread.php?t=213819)

Вопросник 24.01.2017 03:01

Данные из текста в Массив
 
Здравтсвуйте.
Кто может помочь. Надо из тестового файла загрузить тест в двумерный массив. Что-то я совсем потерял с чего начать.

Если можно, помогите.

К примеру есть фаил в котором тескт вот такой:

1 00
2 01
3 02
4 03
5 04
6 05
7 06
8 07
9 08
10 09
11 010
12 011



Кто может напистаь код или где почитать как это делать.

Я пока что нашел только как просто загружать фаил urlLoadером и все.

caseyryan 24.01.2017 08:07

А зачем тебе здесь двумерный массив? Какой смысл хранить ссылку на массив, в котором всего один эелемент? Может нужен ассоциативный?
Что из себя должен представлять массив?

Вопросник 24.01.2017 08:29

типа
Массив [1][0];
Типа загружает из текстового файла номера цифр в массив и проверяет на совпадения, ну а потом отобранные номера вывожу в текстовом поле.

ассоциативный точно не нужен. Просто хочу сделать скрипт который убирает из Массива одинаковые цифры.
Подойдет даже одномерный, если с двумерным сложнее.

А то с 2012 года я просто все забыл. Прикол.

caseyryan 24.01.2017 08:39

Задача с делением строки довольно простая
Код AS3:

package {
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.filesystem.File;
        import flash.filesystem.FileMode;
        import flash.filesystem.FileStream;
 
        public class TestClass extends Sprite {
 
 
                public function TestClass() {
                        var textFile:File = File.applicationDirectory.resolvePath("number_row.txt");
                        var fileStream:FileStream = new FileStream();
                        fileStream.open(textFile, FileMode.READ);
                        var result:String = fileStream.readUTFBytes(fileStream.bytesAvailable);
                        parseText1(result);
                        parseText2(result);
                }
 
                // первый вариант с двойным сплитом
                private function parseText1(text:String):void {
 
                        var assocArray:Object = {};
                        var rawSplit:Array = text.split(/[\n\r]+/g);
                        for (var i:int = 0; i < rawSplit.length; i++) {
                                var str:String = rawSplit[i];
                                if (str.length < 2) continue;
                                var pairs:Array = str.split(/\s+/);
                                // дальше уже можно ключи и значения распределять по массиву
                                var key:        String = pairs[0];
                                var value:        String = pairs[1];
                                assocArray[key] = value;
                        }
 
                }
 
                // второй вариант с делением по любому пробелу или переносу строки
                private function parseText2(text:String):void {
                        var rawSplit:        Array        = text.split(/\s+/g);
                        var assocArray:        Object        = {};
                        if (rawSplit.length % 2 != 0) {
                                // подрезаем длину массива до четной
                                rawSplit.pop();
                        }
                        for (var i:int = 0; i < rawSplit.length; i += 2) {
                                var key:        String = rawSplit[i];
                                var value:        String = rawSplit[i + 1];
                                assocArray[key] = value;
                        }
 
 
                }
        }
 
}

я тут сделал с ассоциативным, но там уже доработаешь как нужно, смысл все равно тот же

zackscript 24.01.2017 10:14

Не красивая затея хранить инфу в текстовом файле.

caseyryan 24.01.2017 10:31

Цитата:

Сообщение от zackscript (Сообщение 1198756)
Не красивая затея хранить инфу в текстовом файле.

Чем не красивая?
Вполне нормальная затея. Все зависит от того, какие данные нужно хранить. Для подобных данных в самый раз

zackscript 24.01.2017 10:48

Просто иным способом(о котором я знаю) код в 2-ое меньше будет :)

caseyryan 24.01.2017 11:16

Цитата:

Сообщение от zackscript (Сообщение 1198758)
Просто иным способом(о котором я знаю) код в 2-ое меньше будет :)

Поведай о способе

zackscript 24.01.2017 14:12

Цитата:

Поведай о способе
Если в кадрах то меньше кода :D
А вообще у меня аналогичная ситуация только в вместо текста я использую xml разметку и инфу которую он содержит я проверяю сразу без добавлений в массив или ассоциативный массив.

caseyryan 24.01.2017 17:14

Цитата:

Сообщение от zackscript (Сообщение 1198766)
Если в кадрах то меньше кода :D
А вообще у меня аналогичная ситуация только в вместо текста я использую xml разметку и инфу которую он содержит я проверяю сразу без добавлений в массив или ассоциативный массив.

Это ты так думаешь. На самом деле этот xml тоже полностью грузится в память. И занимает ее больше, чем подобный файл, из-за своей избыточности.
Плюс к тому, тебя могут просто поставить перед фактом, что нужно распарсить подобный файл, например для обмена данными между ККМ и 1с, или ассоциативный словарь, который представлен именно в таком виде. Да мало ли что. Не всегда у разработчика есть выбор


Часовой пояс GMT +4, время: 00:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.