|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Как думаете нормально? Работать будет? :) Код: plaintext 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2020, 20:20 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav, так ты скомпилируй и посмотри! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 10:45 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav, к чему вообще весь этот зоопарк, если тебе, всего лишь, надо узнать кол-во байт литерала? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Результат, как и ожидалось, "36". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 11:28 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
rdb_dev petrav, к чему вообще весь этот зоопарк, если тебе, всего лишь, надо узнать кол-во байт литерала? Не количество байт, а количество символов. И не обязательно у литерала. Compile time только по возможности. Я, конечно, тестировал на русских буквах и иероглифах. Но я ведь программировал по мотивам кода со стек-оферфлоу. И там было приписано, что реализация наивная. Поэтому и спрашиваю, может можно улучшить. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 12:07 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Я когда-то взял не глядя функцию UTF2Unicode с хабра https://habr.com/ru/post/282191/ Правда параметр заменил на Код: plaintext 1.
Для подсчета символов тоже подойдет. На иероглифах не пробовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 12:56 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad, А какой смысл в символах считать? Это не универсально. Может на знаки? Диакритические знаки? Кодовые точки, составные символы? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 13:16 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav, Вот как-то так... Код: plaintext 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 13:18 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp А какой смысл в символах считать? Это не универсально. Может на знаки? Диакритические знаки? Кодовые точки, составные символы? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 13:25 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
rdb_dev petrav, Вот как-то так... Код: plaintext 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Как-то у вас всё переусложнено, ИМХО. Я так понимаю тут подсчитываются лидирующие символы, а не лидирующие пропускаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 13:27 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav Как-то у вас всё переусложнено, ИМХО. petrav Я так понимаю тут подсчитываются лидирующие символы, а не лидирующие пропускаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 13:39 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad, В пикселях же в winApi есть? Типа getTextPoint..... И там учитывается шрифт, выравнивание и куча всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 13:42 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp В пикселях же в winApi есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 13:46 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
rdb_dev petrav Как-то у вас всё переусложнено, ИМХО. petrav Я так понимаю тут подсчитываются лидирующие символы, а не лидирующие пропускаются. Да символов. Попробовал, с моим кодом тоже всё работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 13:51 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav, enjoy! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 14:03 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
rdb_dev petrav, enjoy! :) Правда у меня смесь русских букв и иероглифов (иероглифы в три байта). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 14:05 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav Правда у меня смесь русских букв и иероглифов (иероглифы в три байта). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 14:05 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad PetroNotC Sharp В пикселях же в winApi есть? Блин, опять универсальность везде). Тогда конечно. А так там свои API есть Типа: getTextBounds Added in API level 1 public void getTextBounds (String text, int start, int end, Rect bounds) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 14:29 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Я стараюсь все, что можно сделать на перенесимом C++, делать на нем. Посчитать размер выводимой через openglES строки текста - задача не сложная. Завязываться на специфичное Java-API ради этого не хочется. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:21 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Осталась сущая мелочь: найти в С++ переносимые шрифты. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:23 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad, У OpenGL разве не в Canvas. У которого есть Pаint. С длиной текста методом? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:30 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Осталась сущая мелочь: найти в С++ переносимые шрифты. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:30 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad Dimitry Sibiryakov Осталась сущая мелочь: найти в С++ переносимые шрифты. Круто. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:34 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Глянул статью - опять игрушки. Понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:35 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp AmKad, У OpenGL разве не в Canvas. У которого есть Pаint. С длиной текста методом? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:36 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Глянул статью - опять игрушки. Понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:36 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad PetroNotC Sharp AmKad, У OpenGL разве не в Canvas. У которого есть Pаint. С длиной текста методом? Вроде Canvas счас даже у электрочайников. Типо: Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:53 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Это java? Canvas - это абстракция поверх openGL. В самом openGL ее нет. Как заставить это работать под iOS? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 16:01 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad PetroNotC Sharp Глянул статью - опять игрушки. Понятно. Я просто openGl десктопный использовал для 3D, и мало представляю его где нибудь в корпоративе. Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 16:03 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad PetroNotC Sharp, Это java? Canvas - это абстракция поверх openGL. В самом openGL ее нет. Как заставить это работать под iOS? Не подскажу. Я писал в андроид на родном ЯП - java. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 16:04 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp не, вы профи. Имхо PetroNotC Sharp Я просто openGl десктопный использовал для 3D, и мало представляю его где нибудь в корпоративе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 16:23 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp не, вы профи. Я просто openGl десктопный использовал для 3D, и мало представляю его где нибудь в корпоративе. Имхо Современные Иксы достигают максимальной производительности рендеринга 2D через OpenGL - метод ускорения "Glamor" . Надо только настроить в xorg.conf правильный порядок загрузки модулей. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 16:39 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad, >>Если мы рассматриваем opengGL как альтернативу нативному UI Трудно судить. Мы его не видели. Корпоративный интерфейс для работы, он аскетичный. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 16:44 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
rdb_dev PetroNotC Sharp не, вы профи. Я просто openGl десктопный использовал для 3D, и мало представляю его где нибудь в корпоративе. Имхо Современные Иксы достигают максимальной производительности рендеринга 2D через OpenGL - метод ускорения "Glamor" . Надо только настроить в xorg.conf правильный порядок загрузки модулей. Это нужно только в 3D и играх. Остальное не тормозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 16:47 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Зачем ее вычислять в compileTime? У вас-же ООП? Создавайте свой Код: plaintext 1. 2. 3. 4.
расчитывайте длину eventually. И сохраняйте в переменную класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 17:17 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
mayton, +1 Как вверху класс Paint ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 17:22 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
mayton Зачем ее вычислять в compileTime? У вас-же ООП? Создавайте свой Код: plaintext 1. 2. 3. 4.
расчитывайте длину eventually. И сохраняйте в переменную класса. Compile time как бонус. У меня кое-где static_assert написаны на длину строк. Главное посчитать длину utf-8 строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 17:40 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav mayton Зачем ее вычислять в compileTime? У вас-же ООП? Создавайте свой Код: plaintext 1. 2. 3. 4.
расчитывайте длину eventually. И сохраняйте в переменную класса. Compile time как бонус. У меня кое-где static_assert написаны на длину строк. Главное посчитать длину utf-8 строки. А что это дает? Может лучше побыть lazy и вообще не расчитывать эту длину. Может за время твоего теста строка и не понадобиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 18:16 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp шейдеры применяют чтобы вычисления сместить с процессора в видеокарту. Это нужно только в 3D и играх. Остальное не тормозит. Ты можешь сам в этом убедиться - взять какую-нибудь плату на Intel baytrail, поставить Линух, прогнать тест графики в HardInfo, затем сменить конфигурацию по умолчанию с использованием: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 09:26 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp шейдеры применяют чтобы вычисления сместить с процессора в видеокарту. Это нужно только в 3D и играх. Остальное не тормозит. Вот сходу нашел ссылку https://assetstore.unity.com/packages/vfx/shaders/2d-shader-collection-133046 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 09:41 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
rdb_dev, Я прикладник а не системщик. Сужу по конечному продукту. Какое ПО на твоем устройстве тормозит? ПО - прогаммное обеспечение. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:08 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad, Мне 2D игры не интересны. А ты про огоньки, вспышки... Технологии умирают раз в 5 лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:11 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp rdb_dev, Я прикладник а не системщик. Сужу по конечному продукту. Какое ПО на твоем устройстве тормозит? ПО - прогаммное обеспечение. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:17 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
rdb_dev, Нет. Не дошло. Передо мной Ось астра на дебиан. Скажи что сломать чтобы тормозило всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:20 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, не поверишь, но передо мной тоже AstraLinux v2.12.29 с ядром v4.15.3-2-hardened 64-битная. Чтобы тормозило всё, ничего ломать не надо! Надо просто ничего не настраивать. Поставь эту же Астру на baytrail с Celeron 1.9ГГц и удивись тормознутости без настройки. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:24 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Интересно мы от длины строки перешли к OpenGL. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:33 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, жаль только, что в отличие от Debian, на AstraLinux не удастся поставить последнюю версию HardInfo, в которую встроен неплохой тест 2D отрисовки, из репозитория Debian без дополнительных приседаний. Астра сильно отстаёт по версиям пакетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:43 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
rdb_dev PetroNotC Sharp, жаль только, что в отличие от Debian, на AstraLinux не удастся поставить последнюю версию HardInfo, в которую встроен неплохой тест 2D отрисовки, из репозитория Debian без дополнительных приседаний. Астра сильно отстаёт по версиям пакетов. А зачем вы сидите на АстраЛинукс? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:48 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav, портируем свои виндовые приложения на AstraLinux. Дома у меня на основном компе Win10Pro, а на сетевом хранилище тестовая ветка Debian (bullseye). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:54 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
rdb_dev petrav, портируем свои виндовые приложения на AstraLinux. Дома у меня на основном компе Win10Pro, а на сетевом хранилище тестовая ветка Debian (bullseye). Я имел в виду почему именно Астра? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:57 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav, продиктовано спецификой рыночного сегмента. Заказчику так надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 10:58 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav Интересно мы от длины строки перешли к OpenGL. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 11:00 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav rdb_dev PetroNotC Sharp, жаль только, что в отличие от Debian, на AstraLinux не удастся поставить последнюю версию HardInfo, в которую встроен неплохой тест 2D отрисовки, из репозитория Debian без дополнительных приседаний. Астра сильно отстаёт по версиям пакетов. А зачем вы сидите на АстраЛинукс? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 11:14 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad Я стараюсь все, что можно сделать на перенесимом C++ для Анроида и iOS тоже? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 11:17 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Изопропил AmKad Я стараюсь все, что можно сделать на перенесимом C++ для Анроида и iOS тоже? Думаю оверхед будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 11:21 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Давайте обсуждение OpenGL счтитать оффтопом. Автор? Ты согласен? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 12:03 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
mayton Давайте обсуждение OpenGL счтитать оффтопом. Автор? Ты согласен? Да мне это не мешает. Если людям интересно, то пусть говорят о OpenGL. Мне тоже интересно слегка. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 12:15 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Ну ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 12:19 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Корпоративный интерфейс для работы, он аскетичный. и для шоу/презентаций не видеостенах и прочего Digital Signage ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 12:20 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Изопропил AmKad Я стараюсь все, что можно сделать на перенесимом C++ для Анроида и iOS тоже? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:07 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad Изопропил пропущено... для Анроида и iOS тоже? А ну кинь ссылки на твои игрушки в *Store. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:21 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
mayton А ну кинь ссылки на твои игрушки в *Store. Pirate Bomb: Android , iOS . Составь слова (люди в отзывах пишут про опечатки, руки не доходят поправить): Android , iOS . Филиппинские кроссворды: Android , iOS . P.S. Над дизайном не смейтесь - он страшненький. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:36 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Версии для винды скромно выложил на руктрекере: Pirate Bomb , Японские кроссворды и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:41 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
AmKad, Я так понимаю о заработке речь не идёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:51 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Pirate Bomb мне нравится по скриншотам. Красиво. Остальные как-то так.. ниочем. Да мне кажется японские кроссворды только ленивый не делал. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:55 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav Я так понимаю о заработке речь не идёт? Это не моя основная работа, это хобби. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:57 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav Как думаете нормально? Работать будет? :) Код: plaintext 1. 2. 3. 4.
Длина utf-8 (и вообще Unicode) строки это понятие неоднозначное, если вообще имеющее смысл. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 22:04 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
a guest Длина utf-8 (и вообще Unicode) строки это понятие неоднозначное, если вообще имеющее смысл. 1. Размер строки в байтах, требуется для определения размера буферов и "всего такого"; 2. Количество кодов (code points). Может требоваться для "всякого низкоуровневого"; 3. Собственно длина строки или количество знакомест на (абстрактном) устройстве вывода. Учитывая, что в строку UTF-8 можно "замешать", например, "форматирующие" ESC-последовательности ANSI терминала - да, всё сложно. Тем более, что "стандартные" управляющие символы US-ASCII существуют и без всяких ANSI-терминалов. Придётся, как минимум, делить строку на "обычные" и "управляющие" (под)строки. Но, тем не менее, длина "обычных" строк - (хорошо) определяемое понятие. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 06:05 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Ну дак кто против. Проверяйте строку что она "обычная" и считайте "обычные" символы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 07:43 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Basil A. Sidorov a guest Длина utf-8 (и вообще Unicode) строки это понятие неоднозначное, если вообще имеющее смысл. 1. Размер строки в байтах, требуется для определения размера буферов и "всего такого"; 2. Количество кодов (code points). Может требоваться для "всякого низкоуровневого"; 3. Собственно длина строки или количество знакомест на (абстрактном) устройстве вывода. Учитывая, что в строку UTF-8 можно "замешать", например, "форматирующие" ESC-последовательности ANSI терминала - да, всё сложно. Тем более, что "стандартные" управляющие символы US-ASCII существуют и без всяких ANSI-терминалов. Придётся, как минимум, делить строку на "обычные" и "управляющие" (под)строки. Но, тем не менее, длина "обычных" строк - (хорошо) определяемое понятие. Ну отлично же. Чёрт с ними с управляющими кодами. Давайте заменим длину строки на количество знакомест. Назовём это шириной строки. Вот я попытался подставить в свой код пару китайских иероглифов: привет по-китайски. В Студии это два символа, но при печати в редакторе они занимают по два знакоместа. Т.е. ширина: четыре позиции шрифта Consolas. Вот можно по простому определить ширину символа в знакоместах? Потому что у меня при выводе получилось два обрезанных иероглифа. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 08:19 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav, Чем отличается знакоместо от символа? Скрины давайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 08:33 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
PetroNotC Sharp petrav, Чем отличается знакоместо от символа? Скрины давайте. Вот по ссылке ищи фразу "ni hao in chinese", там слева будет два иерогива. Подставь их в Студию с шрифтом Consolas. Символа два, а по ширине они как четыре. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 08:40 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
U+000438 CYRILLIC SMALL LETTER I U+000306 COMBINING BREVE и U+000439 CYRILLIC SMALL LETTER SHORT I 1/2 и ½ как знакоместа считать будем? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 08:41 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Изопропил, сначала нормализуем , потом посчитаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 09:26 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
petrav PetroNotC Sharp petrav, Чем отличается знакоместо от символа? Скрины давайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 10:20 |
|
Вычисление длины utf-8 строки в compile time
|
|||
---|---|---|---|
#18+
Представьте строку, где фразы на европейских языках с чтением слева направо перемежаются с фразами на фарси - справа налево. Чтобы вывести такую строку на терминал, фразы на фарси нужно выводить в обратном порядке символов, так как в самой строке они также будут представлены в порядке справа налево (младший байт - крайний правый символ, старший байт - крайний левый для LE) и с выравниванием текста по правому краю. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 10:30 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017377]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
others: | 261ms |
total: | 425ms |
0 / 0 |