|
|
|
|
Железный канал: «Клуб программистов.» |
|
|
|
Dimaxx
1025 EGP
      Рейтинг канала: 8(913) Репутация: 204 Сообщения: 5833 Откуда: Северодвинск Зарегистрирован: 26.06.2002
 |
|
Попробуй первой командой перед сортировкой вставить chcp 1251 - по умолчанию стоит 866 кодовая страница, а там с русскими буквами "беда".
_________________ "Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс |
|
|
|
Grebomet
1470 EGP
      Рейтинг канала: 8(759) Репутация: 261 Сообщения: 4790 Откуда: Питербурх Зарегистрирован: 06.01.2003
 |
|
| za4ot : |
|
Почему так происходит не пойму.
|
Потому что по умолчанию сорт небось в какой-нибудь кривой локали сортирует
Вот так боль-мень нормально сортирует файлы с русским текстом в кодировке win-1251 (и, как ни странно, UTF-8):
sort /L C input.txt /O output.txt
Могут быть косяки с буквой Ё (и, возможно, Ъ).
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
Последний раз редактировалось: Grebomet (02:25 11-05-2025), всего редактировалось 1 раз |
|
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(805) Репутация: 37 Сообщения: 12339
Зарегистрирован: 17.10.2004
 |
|
Виндовый sort не поддерживает никакие кодировки кроме ASCII.
Либо используй powershell, либо поставь уже Cygwin, либо возьми TCC-RT - TPIPE умеет в уникод.
_________________ Люблю свободный полёт... :)
Последний раз редактировалось: AnrDaemon (10:54 23-05-2025), всего редактировалось 1 раз |
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3628 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
| AnrDaemon : |
|
Виндовый sort не поддерживает никакие кодировки кроме ASCII.
|
Мы уже разобрались. sort /L C 1.txt /O 2.txt работает как нужно. Просто при переезде сообщения потерлись.
_________________ Пираты - наше всё! |
|
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(805) Репутация: 37 Сообщения: 12339
Зарегистрирован: 17.10.2004
 |
|
Это не то, что ты думаешь. /L C сравнивает побайтно.
Не факт, что результат будет такой, как тебе нужно.
_________________ Люблю свободный полёт... :)
Последний раз редактировалось: AnrDaemon (17:35 02-06-2025), всего редактировалось 1 раз |
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3628 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
| AnrDaemon : |
|
Не факт, что результат будет такой, как тебе нужно.
|
Эмпирическим путем выяснил, что как раз факт.
_________________ Пираты - наше всё! |
|
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(805) Репутация: 37 Сообщения: 12339
Зарегистрирован: 17.10.2004
 |
|
До первого столба - да. А как только встретится не самый тривиальный уникод - ой.
_________________ Люблю свободный полёт... :) |
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3628 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
Очень часто в книжках встречается ситуация когда два предложения не разделены пробелом. Править вручную это очень долго. Вчера попытался написать замену на Perl для своего редактора опечаток. Следуя логике, нужно было добавить пробел после любой точки за которой идет любой символ кроме пробельного. Для этого написал так:
| Код: |
$string =~ s{\.(\S)}{\. $1}g;
# Любая точка после которой идет не пробельный символ заменяется на точку и тот же символ разделенные пробелом. |
Но я не учел, что у нас .fb2 и в конце каждого абзаца перед точкой стоит символ "<". Так что эта замена и туда впихнула пробел. Можно было, конечно, следом применить замену убирающую пробел перед "<", но это ж сколько лишних телодвижений. Пробовал писать по разному. Ничего не помогало.
| Код: |
$string =~ s{\.([^<][\S])}{\. $1}g;
$string =~ s{\.([<{0,0}\S])}{\. $1}g;
$string =~ s{\.(<{0,0}\S)}{\. $1}g;
$string =~ s{\.([[^<][\S]])}{\. $1}g;
# и это даже не все варианты
|
В итоге просто попробовал исключить из класса символ "<" и посмотреть, что из этого выйдет.
| Код: |
$string =~ s{\.([^<])}{\. $1}g;
|
И это сработало. Теперь замена добавляет пробел между предложениями только там где его нет, и не добавляет его перед символом "<".
Вот такую полезную штуку я узнал самостоятельно. Класс содержащий все буквенно-цифровые символы кроме одного, исключая пробельные, описывается классом, в котором исключен именно этот один символ. Т. е. [^символ который нужно исключить]. Как по мне для редактирования .fb2 это архиполезная фича.
_________________ Пираты - наше всё!
Последний раз редактировалось: za4ot (22:09 07-12-2025), всего редактировалось 2 раз(а) |
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3628 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
Почитываю старые книжки. Кое-что начинает для меня проясняться. Хотел бы, чтоб знающие люди поправили меня если я чего-то не так понял.
1. Сейчас все ОС (Linux, Windows, FreeBSD, MacOS) графические, DOS была не графической?
2. Всё что в какой-либо ОС мы видим на экране: окна, кнопки, меню, рабочий стол и пр. - это нарисовано средствами самой ОС и называются эти средства Графическим API ОС?
3. У каждой ОС свой собственный графический API.?
4. Когда мы пишем программу с GUI на каком-либо ЯП, то мы используем обращения к графическому API ОС либо напрямую, либо через какую-то прослойку, либо в каждом ЯП есть свой графический API отличный от графического API ОС?
5. На ЯП JAVA обращения к графическому API будут одинаковыми для всех ОС, так как по факту это обращения к графическому API виртуальной машины, а виртуальная машина потом, в зависимости от ОС, сама решает какие обращения на какой ОС использовать?
_________________ Пираты - наше всё!
Последний раз редактировалось: za4ot (15:53 08-12-2025), всего редактировалось 1 раз |
|
|
|
iiiIIIiiIIiIiiII
413 EGP
   Рейтинг канала: 1(1) Репутация: 14 Сообщения: 374 Откуда: Планета номер 13 в Тентуре Зарегистрирован: 25.05.2020
 |
|
1. Да.
2. В ОС есть ядро и библиотеки. Как правило, графический интерфейс не относится к ядру.
3. Если они не родственники, то обычно да.
4. Да, обращаемся либо к условно системной библиотеке, либо к какой-то, абстрагирующей её (или даже цепочке таковых).
5. Верно.
_________________ И вздохнёт бог. Посмотрит всё прощающими глазами. И скажет мне, дурак ты, Василий. А ежели ты дурак, то какая тебе разница, дурак ты или же — Дурак. |
|
|
|
Ritchie
310 EGP
 Рейтинг канала: 1(9) Репутация: 12 Сообщения: 7145
Зарегистрирован: 15.12.2015
 |
|
Линукс и бздя не графические. Графические там только надстройки.
Винда изначально тоже не графическая, только начиная с версии 3 становится таковой. И даже не ОС а надстройка над ДОС, ОСью становится начиная с версии 95 и c ее паралельной ветки NT 4.
добавлено спустя 6 минут:
ЗЫЖ хотя в паралельной ветке была еще вин 3.5, возможно даже она а не нт4.
А так единственной и графической и осью была изначально только макось.
Последний раз редактировалось: Ritchie (20:42 08-12-2025), всего редактировалось 1 раз |
|
|
|
OLCHA
807 EGP
      Рейтинг канала: 2(24) Репутация: 187 Сообщения: 1803 Откуда: Krasnodar&Moskva Зарегистрирован: 27.02.2001
 |
|
| Ritchie : |
А так единственной и графической и осью была изначально только макось.
|
а ось пополам?
_________________ С ув. Ольха.
=================================
каждый в своем направлении,каждый в своё время...
Из прошлого надо брать огонь, а не пепел... |
|
|
|
Ritchie
310 EGP
 Рейтинг канала: 1(9) Репутация: 12 Сообщения: 7145
Зарегистрирован: 15.12.2015
 |
|
| OLCHA : |
|
а ось пополам? Улыбка
|
ну шо ви начинаете? ОСь пополам не в списке перечисленных, я за них в первую очередь. На амиге тоже была изначально графическая ось, да много где.
|
|
|
|
|
|
|
|
|
Железный канал: «Клуб программистов.» |
|
|