|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
petrav Т.е. вы предлагаете для скорости кешировать результаты полной декомпозиции? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 16:35 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
ВсеРазумный petrav, Просто в тексте поиска заменяйте Й,И,E,Ё на X и в искаемом тексте. Проблемы не будет Я собственно это и предлагаю. Просто Сидоров рассуждает так: UC-32 нам не подходит, потому что нам всё равно нужны составные символы для поиска. Типа для поиска нужно Ё заменить на два символа. И пока он не смог обосновать зачем это нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 16:39 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
petrov, Basil A. Sidorov я перечитал дискуссию два раза и вообще не понял, что Вы сейчас обсуждаете ((( Последнее понятное сообщение 22174105 всё что дальше, лично мне вообще не понятно, о чем разговор. Кроме акцент марк (диакритик марк) есть и управляющие символы (перевод строки, разрывный - не разрывный пробел, "разрещение" на перенос в данном месте слова), и языки где одной букве соответствует дофига начертаний (вроде в арабских языках написание буквы зависит от предыдущей/следующей буквы), и иероглифы, и все прочее. И в общем, Basil A. Sidorov совершенно прав, что fixed, что utf, основная сложность совершенно в другом будет заключатся ((( Unicode он в меньше степени про кодировку, в большей про обработку и полиграфию. Сам читал в 2000-ом и ничего не понял ))) к тому же, выяснилосль, что: 1) Unicode древнегреческий язык не поддерживает 2) ни одного Unicode шрифта и Ms Word с нормальной поддержкой диакритик знаков все равно нет. Т.к. буквы разноширинные и даже если взять диакритик марк из шрифта, он над буквой будет черти где рисоваться. Марки есть, пользоваться невозможно Для древнегреческого тогда использовали самопально-нарисованные обычные (неUnicode) шрифты и "обычный" текст в 1251 (Ms Word думал что 1251, на деле древнегреческий). Как сейчас - не знаю. 3) те шрифты которые есть, нужно покупать у Adobe В 2000-ом все было очень печально. Полной фигней этот Unicode оказался (((. Подозреваю сейчас не сильно лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 16:59 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
petrav Типа для поиска нужно .... И пока он не смог обосновать зачем это нужно. Поскольку один и тот же символ может кодироваться по разному, желательно его "нормализовать". Привести к единому варианту. Пример с русским языком не корректен. Нужно брать языки с accent mark ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:05 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
petrav нам всё равно нужны составные символы для поиска ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:05 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
Basil A. Sidorov petrav нам всё равно нужны составные символы для поиска Может я неправильно понял? Это что значит? Basil A. Sidorov petrav Какие есть весомые аргументы включить полную декомопозицию? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:10 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
petrav Может я неправильно понял? Это что значит? Практически это означает, что нет смысла вводить в язык программирования и в API высокого уровня тип (w/mb)char: string - и никаких гвоз..., тьфу, чаров. Не char как эквивалент байта, а char, как эквивалент "символ алфавита". Да, для реализации низкоуровневого API потребуются коды, но, скорее всего, разумнее будет использовать int. Точно так же, как "современный" readch возвращает int, хотя "было время", когда возвращал (знаковый) char. petrav Basil A. Sidorov Искать "йод" и "иод", как пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:24 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
Basil A. Sidorov petrav Может я неправильно понял? Это что значит? Да petrav вроде и не спрашивал про составные. Его вопрос в основном касался оптимизации хранения (байты) и скорости доступа к производльному i-му символу в строке. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:36 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
Попытаюсь дополнить более корректным примером. Для ряда применений, при обработке/сравнении/поиске может оказаться, что H20 - информации о superscripts / subscript нет H 2 O - Combining characters, за которые ратует Basil A. Sidorov (просто цифра 2 + доп. информация о режиме отрисовке) H Unicode Symbol с кодом U+2082 0 - Precomposed characters, как хочет petrav одно и то же note: возможно путаница в терминах Combining / Precomposed , читайте стандарт сами ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:38 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
mayton Да petrav вроде и не спрашивал про составные. Его вопрос в основном касался оптимизации хранения (байты) и скорости доступа к производльному i-му символу в строке. petrav желает сидеть на двух стульях: ему требуется индексный доступ и юникод одновременно . "Не бывает" (ц) комедия "Чародеи", голос скатерти-самобранки. P.S. Можно ещё и графа Калиостро из другой комедии вспомнить: "Седалища не хватит" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:45 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
mayton … вопрос в основном касался оптимизации хранения (байты) и скорости доступа к производльному i-му символу в строке. здесь простая и очевидная вилка. если под капотом строки исходный поток байт, то для uft-8 скорость доступа к i-му символу строки линейна по i, и у тебя нет иных вариантов. Если же ты критически зависишь от константного доступа к произвольному символу строки - ты не можешь работать с ней в сыром виде, и должен заплатить за это расходом памяти на преобразование. Вопрос "что такое строка?" здесь приобретает диалектический, философский характер. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:48 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
Давайте лучше перейдем в плоскость 4х алгоритмов нормализации, которые существуют в документации по Microsoft.Net framework и Java. https://docs.microsoft.com/en-us/dotnet/api/system.text.normalizationform?view=netcore-3.1 https://docs.oracle.com/javase/tutorial/i18n/text/normalizerapi.html Пример теста который успешен. Данные взяты с Microsoft, функция нормализации из OpenJDK. Код: java 1. 2. 3. 4.
Аналогичные алгоритмы я находил в реализациях Python3. Почему я настойчиво предлагаю пойти в обратную сторону. Тоесть не в стандарт а именно в реализацию и от нее - в обратку. Тесть если мы увидим в реализации то что нас шокирует или каким-то образом вызовет вопросы - мы идем в стандарт и читаем. Я считаю что дискуссия зашла в тупик и ходит по кругу. Petrav - господин очень настойчивый и целеустремленный. Но имеет место некая зашоренность которая не позволяет ему просто выйти на уровень принятия той или иной концепции работы со строками. Он считает что индексация строки очень важна. И в таком решиме мы еще 5-10 лет проговорим. А говорили уже на эту тему много. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:51 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
Движок сломал красивое начертание композитной буквы. Я сделаю скриншот. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:53 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
mayton Тесть если мы увидим в реализации то что нас шокирует или каким-то образом вызовет вопросы - мы идем в стандарт и читаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:56 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
Basil A. Sidorov mayton Да petrav вроде и не спрашивал про составные. Его вопрос в основном касался оптимизации хранения (байты) и скорости доступа к производльному i-му символу в строке. petrav желает сидеть на двух стульях: ему требуется индексный доступ и юникод одновременно . "Не бывает" (ц) комедия "Чародеи", голос скатерти-самобранки. P.S. Можно ещё и графа Калиостро из другой комедии вспомнить: "Седалища не хватит" Именно поэтому я и апеллирую к практике применения композиций. А именно к документации по Microsoft/Oracle технологиям. Ни в одной из них композиция не является частью самой строки. А вынесена в отдельную прикладную библиотеку - нормализатор. И судя по дизайну его практика применения - опциональна. Тоесть прикладной программист сам решает когда ему применять нормализацию и когда нет. Нужны ли ему ударения? Нужен ли ему немецкий умляют как диактитика? Это пойдет от прикладной задачи. Тоесть бизнес должен это отдельно заявить. В обычных юзкейсах (99.9%) об которые бъется бедняга Петрав нормализация ему дай бог не понадобиться. Какая у него там нормализация в самолётах? Чорт его знает. Ему бы лишних микросекунд наковырять... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:58 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
booby Вопрос "что такое строка?" здесь приобретает диалектический, философский характер. Насколько я помню стандарт Unicode, там и понятия, что такое "символ", "буква" , "получившаяся картинка на бумаге" приобретает диалектический, философский характер. А Вы сразу на "строка" замахнулись ))) По поводу строк юникоде говорит следующее: http://unicode.org/reports/tr14 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 17:59 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
mayton В 2004 сталкивался с ПРИКЛАДНОЙ задачей, когда сильно хотелось Unicode... но Unicode и компьютеры "не смогли". Банальное описание надписей на предметах и нагробиях + поиск по ним https://jalita.com/guidebook/kerch/istoriko-arkheologicheskiy_muzey.shtml https://ru.wikipedia.org/wiki/Пантикапей ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 18:17 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev mayton В 2004 сталкивался с ПРИКЛАДНОЙ задачей, когда сильно хотелось Unicode... но Unicode и компьютеры "не смогли". Вы какраз попали на версию MS Net Framework 1.1. Одна из первых. А на каком языке были разработки? Я не думаю что unicode не могли. Технически там не бох весть какая проблема. Может со шрифтами был косяк? Я помню что ранние TrueType тоже работали только в национальном диапазоне. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 18:25 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
mayton А на каком языке были разработки? https://www.sql.ru/forum/110900/oracle-forms-6i-i-utf-8 ))) mayton Я не думаю что unicode .... со шрифтами... Нужного языка в Unicode просто НЕ БЫЛО ((( Ну не подумали в Unicode об древнегреческом языке и Precomposed characters (которые так милы сердцу Petrov) для греческого там просто НЕТ (((, соответственно и в шрифтах таких комбинаций символов нет. Combining characters (отдельно греческая буква + акцент марки) ни одно средство в то время отрисовывать вообще не умело. Ни Rich Edit control, ни MS Word. А если бы даже я бы и отрисовывал (сдвинуть позицию и в одной позиции два раза нарисовать разные символы - ни бином ньютона запрограмировать) - то получилась бы полная порнография (((, т.ч. я даже заниматься этим не стал. Сам Unicode в БД мы запихнули (потом пригодилось для украинского и казахского языка и прочих, хотя с казахским вроде тоже все было весело, там тоже нужных символов в стандартном "unicode" Windows не было), но в целом, для Керчи оно оказалось не сильно нужным ((( Но об этом узнали только уже у заказчика, когда на реальные тексты посмотрели. Надеялись текст вводит нормало, а пришлось вводить "как всегда" в транскрипции - вместо нормальных букв записывается та же фраза современными буквами в капcлоке. В общем, разница такая-же как между H2O C2H5OH и H 2 O C 2 H 5 OH - жить можно, но счастья особого нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 18:44 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
Мда. Нам с вами повезло пройтись по граблям этой технологии. Поддержка нормализации в Java была запихнута... эээ щас секунду сделаю блейм. Вот. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
В 2007 году некий Дюк закоммитил первые константы относящиеся к кодификатору этих четырех алгоритмов. А вот матрица совместимости Unicode-стандартов и дотнета. Видно что было активное внесение изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 18:55 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
А вот самая олд-скульная версия документа касающася нормальных юникодовских форм https://www.unicode.org/reports/tr15/tr15-22.html Датируется 2002-03-26. Если кто знает более раниие - прошу отписать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 19:00 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Ну не подумали в Unicode об древнегреческом языке P.S. Способность помнить события "времён очаковсксих и покоренья Крыма", безусловно, говорит о хорошей памяти, но ...цкая способность рассказывать о них, как о "только что случившихся"... Ну не старые же маразматики языки на завалинке чешут?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 19:01 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
mayton Я считаю что дискуссия зашла в тупик и ходит по кругу. Petrav - господин очень настойчивый и целеустремленный. Но имеет место некая зашоренность которая не позволяет ему просто выйти на уровень принятия той или иной концепции работы со строками. Он считает что индексация строки очень важна. Я придумал хорошую аналогию. Знаете, золотое правило проектирования С++: если ты не используешь какой-то навороченный функционал С++, то ты и не платишь накладные расходы за этот функционал. Виртуальные функции кажутся не производительными? Не используй их. Потоки С++ медленные? Используй I/O из унаследованного Си. Разворачивание стека не нравится, отключи исключения, но тогда без STL. И т.д. А с Юникодом всё наоборот. Мне не нужны акценты, какие-то составные символы, нюансы арабских языков и т.д. Но за всё за это я уже заплатил. У меня поломалась визуализация данных и печать отчётов. Я переписывал алгоритмы. И я считаю, что можно было сделать лучше. Не платить за то что не используешь. Я, конечно, понимаю, что в системах вёрстки журналов, в текстовых редакторах, в поисковых движках, в браузерах — все навороты Юникода нужны. Я только За. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 19:59 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
petrav, ну и слава богу. Я тебе очень сильно советую хотя-бы немного попрограммировать на C#. Чтоб просто посмотреть как некоторые вещи реализованы. После этого вернись к С++ и превнеси какие-то идеи или принципы какие ты увидел. Вариться всю жизнь в С++ - это означает быть флюсо-подобным специалистом. Надо расширять кругозор. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 20:31 |
|
Очень интересны нюанс с оператором switch
|
|||
---|---|---|---|
#18+
mayton Я тебе очень сильно советую хотя-бы немного попрограммировать на C#. А ведь Java и JavaScript хранят строки в utf-16 и у классов String в этих языка есть оператор [] и метод length(). Вот в Европе какой процент программистов перед вызовом [] резко остановится и начнёт думать, а что там такое записано? Может суррогатная пара? Вот какой процент по вашему мнению? Я понимаю, что в вэбе это редко нужно. PS: У меня около 8-ми лет стажа на SQL, JavaScript, C# (WinForms, ASP.NET). Но я уже мало что помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 20:57 |
|
|
start [/forum/topic.php?fid=57&msg=39984405&tid=2017371]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 412ms |
0 / 0 |