Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Лексикографический порядок слов 
V
    Опции темы
Zuzu
Дата 6.2.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 19.10.2006
Где: Екатеринбург

Репутация: 3
Всего: 4



Добрый день, уважаемые.

Конкретно замкнуло... Либо совсем разрушилась база данных, либо проблемы в скрипте либо еще что...

Суть проблемы.

Как известно, отношение порядка на множестве слов задается в соответсвии с правилом лексикографического порядка. Подробно объяснять, думаю, не нужно - понятие общеупотребительное. Т.е. меньше или больше одно слово другого задается тем, как построен алфавит, из которых эти слова составляются.

Рассмотрим только алфавит, состоящий из цифр и латинских букв.

На простых алфавитах, типа 1..9A..Za..z (порядок ascii символов) очевидно, слово 'Mama' меньше слова 'mama' (большая  буква 'M' в алфавите расположена левее маленькой 'm'.

А теперь вопрос. Встречался ли кто-нибудь (есть ли такие кодовые таблицы за исключением UTF-8) с алфавитами типа:

1..9AaBb..Zz ?
а вот так: A..Za-z1..9 ? или более интересно: aAbB..zZ1..9 ? Или еще как?

Может про наличие и отсутсвие таких алфавитов где-то узнать?







--------------------
Проводить эксперименты на живом сервере опасно, а на мертвом - бесполезно.
PM   Вверх
amg
Дата 7.2.2007, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Насколько мне известно, первая половина ASCII-таблицы, в которой и находятся цифры и буквы английского алфавита, устоялась давным-давно и с тех пор применяется везде. Т.е. таблицу с другим расположением символов вряд ли где встретишь.

Может не по теме, но сортировка меняет расположение символов
Код

use locale;
use POSIX qw(locale_h);
setlocale(LC_CTYPE,"ru_RU");
setlocale(LC_COLLATE,"ru_RU");

chr=~/\w/ and push(@a, chr) for 0..127;
print sort @a;

Код

_0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ

Можно сделать процедуру сортировки, которая бы располагала символы в другом порядке.
PM MAIL   Вверх
Zuzu
Дата 7.2.2007, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 19.10.2006
Где: Екатеринбург

Репутация: 3
Всего: 4



amg, спасибо. Вполне по теме. Выяснил - проблема была именно в этом. База данных использовала именно "локальную" кодировку, а программа на преле - без таковой работала. Порядок больших и малениких латинских букв, с точки зрения базы данных и скрипта был разный. Как результат, база данных и скрипт использовали разное отношение порядка на множестве слов. От этого и возникал бардак.

Временно решил путем убирания из алфаавита, из которого состоят мои слова больших латинских букв (в рамках задачи я властен над алфавитом своих слов). На досуге посмотрю, как там у них у всех с локалью... Чтобы вообще решить эту проблему на корню.



Это сообщение отредактировал(а) Zuzu - 7.2.2007, 16:23
--------------------
Проводить эксперименты на живом сервере опасно, а на мертвом - бесполезно.
PM   Вверх
amg
Дата 7.2.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Кстати, я так понял, что локаль можно ставить (почти) любую, лишь бы была. По крайней мере (проверил) с локалями ru_RU  и en_US латинские буквы сортируются одинаково.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.