|
|
|
|
Железный канал: «Клуб программистов.» |
|
|
|
Dimaxx
1025 EGP
      Рейтинг канала: 8(913) Репутация: 204 Сообщения: 5833 Откуда: Северодвинск Зарегистрирован: 26.06.2002
 |
|
Попробуй первой командой перед сортировкой вставить chcp 1251 - по умолчанию стоит 866 кодовая страница, а там с русскими буквами "беда".
_________________ "Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс |
|
|
|
Grebomet
1470 EGP
      Рейтинг канала: 8(765) Репутация: 261 Сообщения: 4793 Откуда: Питербурх Зарегистрирован: 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 Сообщения: 12340
Зарегистрирован: 17.10.2004
 |
|
Виндовый sort не поддерживает никакие кодировки кроме ASCII.
Либо используй powershell, либо поставь уже Cygwin, либо возьми TCC-RT - TPIPE умеет в уникод.
_________________ Люблю свободный полёт... :)
Последний раз редактировалось: AnrDaemon (10:54 23-05-2025), всего редактировалось 1 раз |
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3631 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
| AnrDaemon : |
|
Виндовый sort не поддерживает никакие кодировки кроме ASCII.
|
Мы уже разобрались. sort /L C 1.txt /O 2.txt работает как нужно. Просто при переезде сообщения потерлись.
_________________ Пираты - наше всё! |
|
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(805) Репутация: 37 Сообщения: 12340
Зарегистрирован: 17.10.2004
 |
|
Это не то, что ты думаешь. /L C сравнивает побайтно.
Не факт, что результат будет такой, как тебе нужно.
_________________ Люблю свободный полёт... :)
Последний раз редактировалось: AnrDaemon (17:35 02-06-2025), всего редактировалось 1 раз |
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3631 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
| AnrDaemon : |
|
Не факт, что результат будет такой, как тебе нужно.
|
Эмпирическим путем выяснил, что как раз факт.
_________________ Пираты - наше всё! |
|
|
|
AnrDaemon
866 EGP
        Рейтинг канала: 8(805) Репутация: 37 Сообщения: 12340
Зарегистрирован: 17.10.2004
 |
|
До первого столба - да. А как только встретится не самый тривиальный уникод - ой.
_________________ Люблю свободный полёт... :) |
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3631 Откуда: Яма Изобилия Зарегистрирован: 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 Сообщения: 3631 Откуда: Яма Изобилия Зарегистрирован: 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 Сообщения: 378 Откуда: Планета номер 13 в Тентуре Зарегистрирован: 25.05.2020
 |
|
1. Да.
2. В ОС есть ядро и библиотеки. Как правило, графический интерфейс не относится к ядру.
3. Если они не родственники, то обычно да.
4. Да, обращаемся либо к условно системной библиотеке, либо к какой-то, абстрагирующей её (или даже цепочке таковых).
5. Верно.
_________________ И вздохнёт бог. Посмотрит всё прощающими глазами. И скажет мне, дурак ты, Василий. А ежели ты дурак, то какая тебе разница, дурак ты или же — Дурак. |
|
|
|
Ritchie
310 EGP
  Рейтинг канала: 1(9) Репутация: 12 Сообщения: 7158
Зарегистрирован: 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 Сообщения: 1807 Откуда: Krasnodar&Moskva Зарегистрирован: 27.02.2001
 |
|
| Ritchie : |
А так единственной и графической и осью была изначально только макось.
|
а ось пополам?
_________________ С ув. Ольха.
=================================
каждый в своем направлении,каждый в своё время...
Из прошлого надо брать огонь, а не пепел... |
|
|
|
Ritchie
310 EGP
  Рейтинг канала: 1(9) Репутация: 12 Сообщения: 7158
Зарегистрирован: 15.12.2015
 |
|
| OLCHA : |
|
а ось пополам? Улыбка
|
ну шо ви начинаете? ОСь пополам не в списке перечисленных, я за них в первую очередь. На амиге тоже была изначально графическая ось, да много где.
|
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3631 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
Короче я так понял для рисования интерфейсов есть вагон и маленькая тележка библиотек для любых ОС и ЯП. Выбираем пару-тройку удобных, а на остальные забиваем, ибо выучить их все нереально, да и незачем.
_________________ Пираты - наше всё! |
|
|
|
iiiIIIiiIIiIiiII
413 EGP
   Рейтинг канала: 1(1) Репутация: 14 Сообщения: 378 Откуда: Планета номер 13 в Тентуре Зарегистрирован: 25.05.2020
 |
|
| za4ot : |
|
Выбираем пару-тройку удобных,
|
Лучше не субъективно "удобные", а мейнстримовые.
Смотри, где есть активность, видимая и заметная поддержка, массовость.
А то выберешь "удобный", а он либо умер 5 лет назад, либо тебе на все вопросы будут отвечать "It's a ${FRAMEWORK_NAME}, bro. Привыкай."
_________________ И вздохнёт бог. Посмотрит всё прощающими глазами. И скажет мне, дурак ты, Василий. А ежели ты дурак, то какая тебе разница, дурак ты или же — Дурак. |
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3631 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
| iiiIIIiiIIiIiiII : |
|
Лучше не субъективно "удобные", а мейнстримовые.
|
Ну тут больше зависит от того на чем пишешь. Для Перл Tk, для Паскаля то что в Лазарус встроено, для Питона Tkinter, для С и С++ MFC. Как-то так, наверное.
Меня сейчас больше занимает вопрос что такое DirectX, OpenGL, Vulkan? Для чего оно и как с этим взаимодействовать в разных ЯП.
_________________ Пираты - наше всё! |
|
|
|
STinger
94 EGP
 Рейтинг канала: 1(9) Репутация: 9 Сообщения: 849 Откуда: СПб Зарегистрирован: 21.09.2006
 |
|
| za4ot : |
|
Ну тут больше зависит от того на чем пишешь. Для Перл Tk, для Паскаля то что в Лазарус встроено, для Питона Tkinter, для С и С++ MFC. Как-то так, наверное.
|
Ну и ещё хорошо бы избегать не-кроссплатформенных решений, типа MFC (оно же устарело вроде, нет?)
|
|
|
|
Grebomet
1470 EGP
      Рейтинг канала: 8(765) Репутация: 261 Сообщения: 4793 Откуда: Питербурх Зарегистрирован: 06.01.2003
 |
|
| za4ot : |
|
Следуя логике, нужно было добавить пробел после любой точки за которой идет любой символ кроме пробельного.
|
И растаращит все многоточия. . .
| za4ot : |
|
Класс содержащий все буквенно-цифровые символы кроме одного, исключая пробельные, описывается классом, в котором исключен именно этот один символ. Т. е. [^символ который нужно исключить].
|
Ты б справочку-то по регекспам почитал, мил человек. Там не один символ, а все, содержащиеся в квадратных скобках. И даже классы можно писать ([^\d] - то же самое, что \D).
| za4ot : |
|
1. Сейчас все ОС (Linux, Windows, FreeBSD, MacOS) графические, DOS была не графической?
|
Ну с натяжкой да, так и есть.
Но если докапываться - линукс и бздя, строго говоря, не обязаны быть графическими. В них всяческая отрисовка на экране делается отдельными программами (X Server, Wayland). Можно поставить линукс в конфигурации server minimal (или как-то так), и у тебя будет нормальный линукс, но без окошечек - только с текстовыми консолями.
| za4ot : |
|
3. У каждой ОС свой собственный графический API.?
|
У винды свой, у макоси тоже. А у линукса с бздей - общий, т.к. они оба используют X Server. Насчет wayland на бзде не знаю, кажись пока не портировали.
| za4ot : |
|
4. Когда мы пишем программу с GUI на каком-либо ЯП, то мы используем обращения к графическому API ОС либо напрямую, либо через какую-то прослойку, либо в каждом ЯП есть свой графический API отличный от графического API ОС?
|
Все так.
Можем напрямую, можем через прослойку, можем вообще через абстракции какой-нибудь библиотеки типа Tcl/Tk или Qt.
| za4ot : |
|
5. На ЯП JAVA обращения к графическому API будут одинаковыми для всех ОС, так как по факту это обращения к графическому API виртуальной машины, а виртуальная машина потом, в зависимости от ОС, сама решает какие обращения на какой ОС использовать?
|
Теоретически да, практически могут быть нюансы.
| za4ot : |
|
Ну тут больше зависит от того на чем пишешь. Для Перл Tk, для Паскаля то что в Лазарус встроено, для Питона Tkinter, для С и С++ MFC. Как-то так, наверное.
|
Для С++ лучше Qt - там все просто и гораздо меньше всякого магического бойлерплейта придется писать. Но это прям очень жирная библиотека - там есть все, включая свои реализации контейнеров. Зато писать на нем одно удовольствие (а не писать - другое).
Если хочется похудее, есть WxWidgets. Он попроще и похудее.
MFC - это если совсем все плохо. По сути это просто обертка из классов над WinAPI.
Собственно, для питона тоже есть PyQt. Да и к перлу пытались прикрутить.
| za4ot : |
|
Меня сейчас больше занимает вопрос что такое DirectX, OpenGL, Vulkan? Для чего оно и как с этим взаимодействовать в разных ЯП.
|
Это для отрисовки трехмерных объектов на экране напрямую. С использованием возможностей видеодрайвера, видеокарты и т.п. Свой отдельный мир.
_________________ Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов. |
|
|
|
za4ot
553 EGP
     Рейтинг канала: 5(139) Репутация: 17 Сообщения: 3631 Откуда: Яма Изобилия Зарегистрирован: 08.08.2012
 |
|
| Grebomet : |
|
Можем напрямую, можем через прослойку, можем вообще через абстракции какой-нибудь библиотеки типа Tcl/Tk или Qt.
|
Т. е. они не самостоятельные графические библиотеки и им всё равно нужен WinAPI для работы? Или самостоятельные?
| Grebomet : |
|
Это для отрисовки трехмерных объектов на экране напрямую. С использованием возможностей видеодрайвера, видеокарты и т.п. Свой отдельный мир.
|
А как этим миром попытаться управлять из какого-нибудь ЯП? Обязательно нужен игровой 2D, 3D движок или можно как-то по другому?
_________________ Пираты - наше всё! |
|
|
|
Криптон
1015 EGP
       Рейтинг канала: 5(116) Репутация: 164 Сообщения: 2682 Откуда: Москва Зарегистрирован: 05.04.2008
 |
|
| za4ot : |
|
А как этим миром попытаться управлять из какого-нибудь ЯП? Обязательно нужен игровой 2D, 3D движок или можно как-то по другому?
|
Естественно, API для 3D-графики можно использовать без игровых движков (игровые движки сами на языках программирования написаны). Нужен заголовочный файл (или несколько файлов, в зависимости от реализации) на используемом языке программирования, при помощи которого можно обращаться к dll-библиотекам, реализующим эти API.
Но там всё очень низкоуровневое, долго придётся разбираться.
(Я немного копался в OpenGL)
|
|
|
|
|
|
|
|
|
Железный канал: «Клуб программистов.» |
|
|