![]() |
String в роли массива..
Вложений: 1
Вот такая ещё беда у меня :rolleyes: Так как с массивами пошло не очень - хотелось бы знать реально ли использовать на ролях массива обычный String? С чтением из оного всё шло просто на ура! Из любой точки, в любое время - всегда пожалуйста (string.charAt(nn) или substr работают исправно). Но как дело дошло до записи всё снова усложнилось...
Для простоты на данном примере (Вложение 15495) пытаюсь изменить только 4-й символ на "x": Код:
var s1:String="0123456789"; |
Ну... можно еще так:
Код:
var str1:String = "1234567";Это, конечно, если сиволы не повторяются =) |
Цитата:
|
Ув. iNils - дело было так:
Начиналось с массивов. Пока необходимости в их клонировании небыло - всё было ок. Втож время, как вариант, попробовал String - для чтения просто чудо! К примеру, как по вашему лучше: Код:
var myArray:Array=(new Array("1","2","x","@","t","i","8"),Код:
var sMap:String=""12x@ti8"; |
1. Проблема с набиванием решается так:
Код:
//// набили так3. Со стороками лишаетесь ряда методов, таких как сортировка. 4. Указатели может и плохо, но часто это и хорошо. Я бы на вашем месте не изобретал бог знает что, а работал с массивами. И потом какой суммарной размерности у вас массив? 10'000, 100'000? |
1. Как вариант вот подумалось: Оригинал (в прошлом а1) хранить как строку а массив а2 получать из str.split ("") ...хотя оригинал то всё равно менять нужно. Хех.;
2. Одномерные/двумерные - это был только пример придуманный на ходу (не приводить же весь исходник!) На деле все многомерное. String конечно один но условно поделен на строки шириной Wdth - координату получал как Y*Wdth+X. 3. Сказать по правде - массив играет роль карты. Зачем сортировать карту? :rolleyes: 4. Не спорю. зы. А как быть с возможностью изменения сразу нескольких ячеек? (Arr[1][1]="1"; Arr[1][2]="2"; Arr[1][3]="3"; ...и т.д.) Для строки это казалось прощще...но только казалось :D |
А могу я туда вставить не "uaaaaaaa" а (0...255)?
|
Код:
String.prototype.__resolve = function(p){Единственное, что нужно понимать, что возвращенное значение будет не ссылкой на символ строки, а новой строкой, так что Код:
a[3] = "z";ЗЫ. Почему-то такая кончтрукция (попытка создать геттер\сеттеры не увенчалась успехом %) Но чего-то думать, как бы это обойти не хочется %) Код:
String.prototype.__resolve = function(p){Код:
String.prototype.__resolve = function(p){ |
разводить демогогию не буду но скажу что когда юзал обработку около 2000 xml файлов через DOM с массивами, память нещадно утекала, когда перешел на SAX и данные в памяти хранил в строках жить стало проще жить стало веселее, но это выбирается конкретно для каждой задачи
(прежде чем перейти с массивов пришлось перестроить структуру xml файлов чтобы оптимизировать поиск совпадений по ним) если бы это была прога на с++ или даже на java я бы не когда не занялся таким извращением. так что SiDDD ты не один такой ;) RegExp рулит |
| Часовой пояс GMT +4, время: 11:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.