![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2009
Адрес: Санкт-Петербург
Сообщений: 18
|
Здравствуйте!
Подскажите, пожайлуста, метод Array.Sort действительно не может отсортировать массив, состоящий из русских и английских слов, перемешанных между собой? Внизу привожу trace части массива. И если Array.Sort этого сделать не во состоянии, какие могут быть варианты? 32 massive Subaru type - avto 33 massive Toyota type - avto 34 massive Jeep type - avto 35 massive PUGEOUT type - avto 36 massive PUGEOUT type - avto 37 massive Лаура type - avto 38 massive РРТ type - avto 39 massive Пежо type - avto 32 sorted massive undefined type - avto 33 sorted massive undefined type - avto 34 sorted massive undefined type - avto 35 sorted massive undefined type - avto 36 sorted massive undefined type - avto 37 sorted massive Лаура type - avto 38 sorted massive РРТ type - avto 39 sorted massive Пежо type - avto
__________________
Чому ж я не птица? Чому ж не летаю? |
|
|||||
|
|
|
|||||
|
Регистрация: Apr 2009
Адрес: Санкт-Петербург
Сообщений: 18
|
Да, спасибо, я читала - но получается, это можно сделать, лишь перебив руками все названия? У меня XML большой, записей на 400. Такой вариант не годится. Причем, после сортировки названий по алфавиту, мне необходимо, чтобы другие массивы, состоящие из записей, соответствующих этим названиям, поменяли порядок в соответствии с сортировкой названий. Т.е. если была запись Jepp, Итальянская, 6, 333-33-33, то после сортировки всей базы по алфавиту, этот адрес и телефон по прежнему соответствовали этому названию.
Реально ли сделать подобное во флеше - или стоит писать программу, которая будет сортировать по названию сам XML?
__________________
Чому ж я не птица? Чому ж не летаю? |
|
|||||
|
Modus ponens
|
Вы можете написать как выглядят исходные данные и что вы в итоге хотите получить?...
Мне не понятно откуда взялись undefined. И PEUGEOT пишется с E ![]()
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Apr 2009
Адрес: Санкт-Петербург
Сообщений: 18
|
Итак, есть XML приблизительно такого вида:
<elux>
<!-- таблица object -->
<object>
<object_id>1</object_id>
<object_type>shop</object_type>
<object_name>Орхидея</object_name>
<object_address>ул. Марата, 7</object_address>
<object_tel>3335676</object_tel>
<object_services>доставка цветов, составление букетов, оформление и декорация помещений</object_services>
<object_url>http://www.orhideja.ru</object_url>
<object_piс>logo/3.gif</object_piс>
<object_map_id>1</object_map_id>
<object_map_x>1000</object_map_x>
<object_map_y>1000</object_map_y>
<object_info>Сейчас нам предстоит самая сложная задача в этом проекте — реализовать функцию-мозг, которая будет решать, в какую клетку нужно сделать ход. Первым шагом, который мы осуществим в этом направлении, станет создание переменных, хранящих маршрут обхода рядков для каждой клетки. Как вы помните, необходимо сделать оценку ценности позиции клетки относительно всех рядков, к которым она относится, а вывод сделать по их сумме. Конечно, можно попытаться написать и универсальный алгоритм, который сможет обходить все рядки, к которым принадлежит клетка, вне зависимости от ее положения. Но это слишком сложно для крестиков-ноликов и достойно скорее игры «Пять в ряд». Гораздо проще и быстрее будет перечислить в индивидуальной для каждой клетки переменной индексы клеток, образующих рядки, к которым она относится:</object_info>
<object_foto1>foto/1.jpg</object_foto1>
<object_foto2>foto/2.jpg</object_foto2>
<object_foto3>foto/3.jpg</object_foto3>
<object_time>с 10 до 18-30</object_time>
</object>
<object>
<object_id>2</object_id>
<object_type>shop</object_type>
<object_name>Модница</object_name>
<object_address>ул. Науки, 5</object_address>
<object_tel>2340900</object_tel>
<object_services>сумки из Италии</object_services>
<object_url>http://www.italy.ru</object_url>
<object_piс>logo/3.gif</object_piс>
<object_map_id>2</object_map_id>
<object_map_x>390</object_map_x>
<object_map_y>700</object_map_y>
<object_info>Станции превратились в города-государства, а в туннелях властвуют тьма и страх. Жители Севастопольской, маленькой подземной Спарты, ценой невероятных
усилий выживают на своей станции и обороняют ее. Но однажды Севастопольская оказывается отрезанной от большого метро, всем ее обитателям грозит страшная гибель. Чтобы спасти людей, нужен настоящий герой…
</object_info>
<object_foto1>foto/4.jpg</object_foto1>
<object_foto2>foto/5.jpg</object_foto2>
<object_foto3>foto/6.jpg</object_foto3>
<object_time>с 10 до 19</object_time>
</object>
...
Внизу привожу кусок кода, который отвечает за выборку. Сначала выборка по "типу". Если язык не выбран - подгружаются все объекты, если русский или английский - то по буквам. Необходимо, чтобы на экране все было по алфавиту for (var i = 0; i < elux.firstChild.childNodes.length; i++) { var i_name = new Array (); i_name[i] = o_name[i].split (""); if (o_type[i] == "avto") { if (ru_eng == "all") { otrisovka(o_name[i],o_address[i],o_tel[i],o_services[i],o_info[i],o_foto1[i],o_foto2[i],o_foto3[i],o_pic[i],o_time[i],o_url[i]); } else if (ru_eng == "rus") { if ((i_name[i][0] == t1) or (i_name[i][0] == t2) or (i_name[i][0] == t3)) { trace (o_name[i]); otrisovka(o_name[i],o_address[i],o_tel[i],o_services[i],o_info[i],o_foto1[i],o_foto2[i],o_foto3[i],o_pic[i],o_time[i],o_url[i]); } else { //trace("NO " + i_name[i][0]); } } else if (ru_eng = "eng") { if ((i_name[i][0] == r1) or (i_name[i][0] == r2)) { trace (o_name[i]); otrisovka(o_name[i],o_address[i],o_tel[i],o_services[i],o_info[i],o_foto1[i],o_foto2[i],o_foto3[i],o_pic[i],o_time[i],o_url[i]); } else { } } else { } } else { } } Эм... Хорошо, что вы не видите, что я там, бывает, в инфо пишу... Базы как таковой еще нет, а искать реальную информацию лениво ![]() Добавлено через 4 минуты Если не знаешь, как делать в принципе - читаешь литературу, копаешься на форумах - и узнаешь. Учиться, бывает, интересно...
__________________
Чому ж я не птица? Чому ж не летаю? |
|
|||||
|
реально:
var xml:XML = new XML(); xml.ignoreWhite = true; xml.onLoad = function(flag:Boolean){ if(!flag){ trace('no such file'); return; } convert(); // поле по которому сортируем sorting('object_name', false); } xml.load('your.xml'); var data = new Array(); function convert(){ var box= xml.firstChild.firstChild; while(box){ var item:Object = new Object(); var prop = box.firstChild; while(prop){ item[prop.nodeName] = prop.firstChild.nodeValue; prop = prop.nextSibling; } data.push(item); box = box.nextSibling; } } function sorting(field:String, desc:Boolean){ test_trace() if(desc) data.sortOn([field], Array.DESCENDING ); else data.sortOn([field]); test_trace() } // тустовый вывод function test_trace(){ trace( data[0].object_id+ '| ' +data[0].object_name); trace( data[1].object_id+ '| ' +data[1].object_name); trace( '--------'); } Последний раз редактировалось Mnilionic; 30.07.2009 в 21:25. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|