Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   отсортировать текстовые символы в массив. (http://www.flasher.ru/forum/showthread.php?t=67114)

Slavik2003 25.07.2005 13:56

отсортировать текстовые символы в массив.
 
Здравствуйте....

Долго ищу инфу по этому вопросу....

Есть текстовое поле с именем(var) text2 .
В нем уже написано продолжительное количество символов - "regjukj".

Мне нужно сохранить в переменную только четвертую букву - "j". Или первую... Или допустим создать поиск буквы в строке.

Возможно ли это? Можете дать примерный скриптик?

Может надо как то иначе, допустим сохранять всю строку в переменную, и потом ее обрабатывать.

А потом я хочу отсортировать это в одномерный массив, но с массивами я знаю как работать. Мне лишь надо знать как "раздробить" строчку и сохранять отдельные ее части...

Заранее спасибо...

KUZEN 25.07.2005 13:58

бери и в цикле лепи массив выдирая по одной буковке ...

dimarik 25.07.2005 14:01

myArray = [];
myArray = text2.split("");

И в массиве будут отдельные символы.

Slavik2003 25.07.2005 14:06

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

Slavik2003 25.07.2005 14:08

dimarik
Спасибо... щас попробую....

KUZEN 25.07.2005 14:11

Код:

str = "asdfghjkl";
arr = new Array();
for (var i = 0; i<str.length; i++) {
        arr = str.split("");
}


dimarik 25.07.2005 14:14

Цитата:

Сообщение от KUZEN
Код:

str = "asdfghjkl";
arr = new Array();
for (var i = 0; i<str.length; i++) {
        arr = str.split("");
}


и работает? спать хоть иногда надо

KUZEN 25.07.2005 14:16

спать надо тебе ... (((

Slavik2003 25.07.2005 14:21

dimarik
KUZEN

Спасибо вам огромное.... это то что мне было надо... : ) !!!

За одно... : ) ...но это уже вопрос посложнее....
Допустим я разбил на массив - 1, 2, a, ...
А вот можно ли как то (без математических уравнений умножающих первое на 10) соединить первую ячейку со второй так, чтоб получилось число 12 ? (а не 1, 2)
Поскольку в строке было введено "12a..." мне иногда придется отделять числа от букв и от других чисел.

Если кто знает... помогите пожалуйста...

dimarik 25.07.2005 14:22

ничё не втыкаю. зачем тут цикл, скажи?

dimarik 25.07.2005 14:24

2 Slavik2003
Не темни, скажи цель какая. Может более изящныс способом можно сделать

Slavik2003 25.07.2005 14:25

добавлю лишь, что это может быть уже в другом массиве... делаться из 1 и 2 - 12.

Slavik2003 25.07.2005 14:28

dimarik
Это некая система паролирование карты одной игрушки : )
Но хотелось, чтоб именно через текстовое поле осуществлялся ввод новой карты.
Карта пишется в зашифрованном виде. В текстовое поле ввидже строки символов.
Программа обрабатывает строку, и строит карту.

Поэтому понадобилась гибкость использования введенного текста.

KUZEN 25.07.2005 14:29

Цитата:

Сообщение от dimarik
ничё не втыкаю. зачем тут цикл, скажи?

Цикл что бы разбить строку, а то что ты предлогал тупо записывается в одну ячейку массива ...

dimarik 25.07.2005 14:32

Цитата:

Сообщение от KUZEN
Цикл что бы разбить строку, а то что ты предлогал тупо записывается в одну ячейку массива ...

Ты правда так считаешь?
А проверить слабо?

text2="xcvsdfgdfgdfg";
myArray = [];
myArray = text2.split("");
trace(myArray.join(", "));
trace(myArray[5]);

Slavik2003 25.07.2005 14:32

Kuzen
я проверил.... то что дал димарик... этот способ как раз таки разбивает все на массив, где в каждой ячейке другой символ. можно любой выбрать, я испытал : )

dimarik 25.07.2005 14:40

итак, текстовое поле анализируем на предмет ключа, по которому строим некую карту. пральна?

dimarik 25.07.2005 14:44

В общем, посмотри в хелпе методы классов Array и String

Slavik2003 25.07.2005 16:37

В общем, я нашел кое-что, что позволяет обойтись без лишнего массива.

slice(x, x2);

x - начальная ячейка.
x2 - конечная + (-1)

Допустим в текстовом поле написано "123456".

trace(text2.slice(1, 2)); - выдает "2".
trace(text2.slice(0, 2)); - выдает "12".
trace(text2.slice(0, 3)); - выдает "123". (от и до конечной).

Нет необходимости вообще создавать отдельный массив(myArray = [];)

Кроме того, здесь я нашел ответ на второй вопрос, как с нулевой и первой ячейки(или других) создать число 12.
trace(text2.slice(0, 2) * 10 / 10);

Десяточки превращают содержимое масивчика slice в числовое значение. (иначе не смог). Может можно иным способом... подскажите если знаете....

т.е. без десяточек уравнение text2.slice(0, 2) + 2 = 122 (а не 14).



text2.slice(x, x2);
Вот таким вот способом можно перемещаться по текстовому полю : )

dimarik 25.07.2005 16:51

trace( typeof( Number(text2.slice(0, 2)) ));

Slavik2003 25.07.2005 17:02

Не выходит. Пишет "number" : ) (с маленькой)

Slavik2003 25.07.2005 17:06

Дело в том, что slice это маленький масивчик. Состоящий(в случае 0, 2) с 1, 2.
Все что ты делаешь, это превращаешь 1 в число(еще раз) и 2 в число(еще раз). Остается как и было 1, 2. : )

Slavik2003 25.07.2005 17:19

Способ проще trace((text2.slice(0, 2)*1+5)); - выдаст 17.


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

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