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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка русских имен в Perle 
:(
    Опции темы
Суриец
Дата 23.4.2004, 09:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как отсортировать файл по полю, которое содержит фамилии на русском.
стандртно сортирует неправильно...
идет а,б,в,г... появляется Х... дальше правильно... потом опять Щ....

Как сделать?

  Вверх
ElectricalStorm
Дата 23.4.2004, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: нет
Всего: 9



use Locale;



--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
Суриец
Дата 23.4.2004, 10:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Тоже самое выдает... так делал первоначально.

  Вверх
korob2001
Дата 23.4.2004, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Все работает.
Код

#!/usr/bin/perl -w
use strict;
use warnings;
use locale;
my @arr = qw(щ о п а в л д к ш з ф ц у б х с ч ы);
foreach my $letter ( sort { $a cmp $b } @arr ) {
   print $letter, "\n";
}



--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
pych
Дата 26.4.2004, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(korob2001 @ 23.4.2004, 18:00)
Все работает.
Код

#!/usr/bin/perl -w
use strict;
use warnings;
use locale;
my @arr = qw(щ о п а в л д к ш з ф ц у б х с ч ы);
foreach my $letter ( sort { $a cmp $b } @arr ) {
   print $letter, "\n";
}


запустил твой скриптик у себя. результат:

а
б
ц
д
ф
х
к
л
о
п
с
у
в
ы
з
ш
щ
ч

результат запуска locale:

LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE=POSIX
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=

где грабли??? sad.gif

ЗЫ. почему забанили сурийца?

Это сообщение отредактировал(а) pych - 26.4.2004, 07:29
PM MAIL   Вверх
Суриец
Дата 26.4.2004, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



rolleyes.gif

Все ок... но осталась все тажа проблема.
PM MAIL   Вверх
korob2001
Дата 26.4.2004, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Цитата

запустил твой скриптик у себя. результат:

Странные вещи просходят. Какая у тебя версия Perl?

Это сообщение отредактировал(а) korob2001 - 27.4.2004, 19:30


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
pych
Дата 26.4.2004, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



This is perl, v5.6.1 built for i586-linux

Copyright 1987-2001, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.
PM MAIL   Вверх
HalkaR
Дата 26.4.2004, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



Линуксовая версия, вполне возможно с кодовыми страницами проблемы.
PM MAIL   Вверх
Pattern®
Дата 27.4.2004, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В догонку данному сабжу. Была тут у меня примерно такая же задачка, отсортировать файл с фамилиями в алфавитном порядке. Каждая фамилия находится на одной строке. Вроде плёвая задачка. И я бы применил к ней то же sort { $a cmp $b } @arr. Да вот условие не очень привлекательное - не использовать ни одну встроенную функцию сортировки... butbut.gif adv/insane.gif Есть какие нить предложения?
PM MAIL WWW ICQ   Вверх
Суриец
Дата 27.4.2004, 05:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(HalkaR @ 26.4.2004, 23:31)
Линуксовая версия, вполне возможно с кодовыми страницами проблемы.

Как определить?? где можно взять нормальные кодовые страницы?

PM MAIL   Вверх
GoodBoy
Дата 27.4.2004, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



2 Pattern® а в чем собссссна проблема?? Пузырек еще ни кто не отменял!!!! :-))))))


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Pattern®
Дата 28.4.2004, 03:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
- А нас в Кембридже учили после того, как сходишь в туалет, мыть руки...
- А в нашем институте не учили на руки писать..
(© Из анекдота)
2 GoodBoy ->Да дело то не в пузырьках (и не в их количестве, если кто то захочет добавить wink.gif ). А в том, что меня в институте учили "не изобретать велосипед дважды" (почему и привёл цитату из анекдота). А подобная задача меня просто выбила из колеи: почему встроенную функцию сортировки использовать нельзя, а остальные можно?
PM MAIL WWW ICQ   Вверх
Pattern®
Дата 28.4.2004, 04:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
Как определить?? где можно взять нормальные кодовые страницы?
Код
$koi_page_ = '\xE1\xE2\xF7\xE7\xE4\xE5\xB3\xF6\xFA\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF2\xF3\xF4\xF5\xE6\xE8\xE3\xFE\xFB\xFD\xFF\xF9\xF8\xFC\xE0\xF1\xC1\xC2\xD7\xC7\xC4\xC5\xA3\xD6\xDA\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD2\xD3\xD4\xD5\xC6\xC8\xC3\xDE\xDB\xDD\xDF\xD9\xD8\xDC\xC0\xD1';

$win_page_ = '\xC0\xC1\xC2\xC3\xC4\xC5\xa8\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xb8\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF';
2 Суриец -> Операция сортировки с помощью cmp происходит по возрастанию их ASCII-кода. Вот посмотри в какой последовательности идут кодовые страницы koi8-r и win-1251 ( от "А" до "Я" и от "а" до "я"). Теперь то понятно, почему "баги" вылезли?

PM MAIL WWW ICQ   Вверх
Суриец
Дата 28.4.2004, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Pattern® , хочешь сказать, что никак не получится отсортировать??? Не верю... должен быть способ. Вот только какой...


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


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

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


 




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


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

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