| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Сортировка русских имен в Perle |
| Автор: Суриец 23.4.2004, 09:27 |
| Как отсортировать файл по полю, которое содержит фамилии на русском. стандртно сортирует неправильно... идет а,б,в,г... появляется Х... дальше правильно... потом опять Щ.... Как сделать? |
| Автор: ElectricalStorm 23.4.2004, 10:02 |
| use Locale; |
| Автор: Суриец 23.4.2004, 10:56 |
| Тоже самое выдает... так делал первоначально. |
| Автор: korob2001 23.4.2004, 18:00 | ||
Все работает.
|
| Автор: pych 26.4.2004, 07:27 | ||||
запустил твой скриптик у себя. результат: а б ц д ф х к л о п с у в ы з ш щ ч результат запуска 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= где грабли??? ЗЫ. почему забанили сурийца? |
| Автор: Суриец 26.4.2004, 07:34 |
| Все ок... но осталась все тажа проблема. |
| Автор: korob2001 26.4.2004, 11:07 | ||
Странные вещи просходят. Какая у тебя версия Perl? |
| Автор: pych 26.4.2004, 11:24 |
| 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. |
| Автор: HalkaR 26.4.2004, 23:31 |
| Линуксовая версия, вполне возможно с кодовыми страницами проблемы. |
| Автор: Pattern® 27.4.2004, 01:41 |
| В догонку данному сабжу. Была тут у меня примерно такая же задачка, отсортировать файл с фамилиями в алфавитном порядке. Каждая фамилия находится на одной строке. Вроде плёвая задачка. И я бы применил к ней то же sort { $a cmp $b } @arr. Да вот условие не очень привлекательное - не использовать ни одну встроенную функцию сортировки... |
| Автор: Суриец 27.4.2004, 05:08 | ||
Как определить?? где можно взять нормальные кодовые страницы? |
| Автор: GoodBoy 27.4.2004, 10:21 |
| 2 Pattern® а в чем собссссна проблема?? Пузырек еще ни кто не отменял!!!! :-)))))) |
| Автор: Pattern® 28.4.2004, 03:25 | ||
|
| Автор: Pattern® 28.4.2004, 04:06 | ||||
|
| Автор: Суриец 28.4.2004, 08:28 |
| Pattern® , хочешь сказать, что никак не получится отсортировать??? Не верю... должен быть способ. Вот только какой... |
| Автор: GoodBoy 28.4.2004, 12:00 | ||
Мне как-то в универе на контрольной по ассембллеру снизили на 1 балл оценку за то, что я сделал инверсию числа путем вычитания его из нуля, а не использовал оператор NEG, который делает инверсию числа путем вычитания его из нуля... :-))))))) Мораль: преподы та-а-а-а-акие загадашные, однако.... :-)))))))))) |
| Автор: Суриец 30.4.2004, 05:55 |
| И все таки... можно стандартными способами отсортировать правильно русские имена на Perle под Linux'ом.... ??? Или как-то надо извращаться? И как именно? |
| Автор: Pattern® 5.5.2004, 01:19 | ||||
| И что? В ответ тишина? Суриец, я бы сделал это всё таким образом. Если у тебя система поддерживает koi8-r, то просто перед сортировкой массива взять и переконвертить искомый массив в win-1251, а после сортировки обратно его переконвертировать в koi8-r. Вот тебе простейшие функции конвертации: win-1251 в koi8-r
|
| Автор: Суриец 5.5.2004, 11:06 |
| О! |
| Автор: YURIC 18.5.2004, 02:51 | ||
У меня вот так все отлично работает:
|