powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Решение ряда задач.
25 сообщений из 100, страница 3 из 4
Решение ряда задач.
    #38816849
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSashaMercuryХм. Пришел к тому, что мне нужно реализовать тип данных который включает в себя строку, и способ её чтения

спецификацию юникода почитай - там много удивительного

процитируйте хотя бы строчку из "много удивительного" ;)
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38816853
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

Unicode equivalence, например
http://en.wikipedia.org/wiki/Unicode_equivalence
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38816854
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

википедия, это не спецификация.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38816855
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

спецификацию сам откроешь - http://unicode.org

UNICODE NORMALIZATION FORM
http://unicode.org/reports/tr15/
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817214
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
спасибо за ссылку. Но к сожалению, у меня нет 60-120 минут(а может и больше) на изучение того документа. Это не Си, и не алгоритмы, и не математика. Позже, я обязательно постараюсь прочитать то, к чему вы пытались меня привести. Может быть вы попробуете простыми словами донести до особо одарённых то, что хотели сказать ?
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817330
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное он хотел сказать что сравнени Unicode символов не равно сравнению байтов.

Если я верно понял суть.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817355
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНаверное он хотел сказать что сравнени Unicode символов не равно сравнению байтов.

Если я верно понял суть.

Ну да, и если крутить символы in-place, то будет сложнее -- символы-то переменной длины
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817397
RWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ещё два символа могут складываться в один знак (буква с диакритикой), так что надо ещё определиться, какой результат мы хотим увидеть после «кручения».
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817402
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНу да, и если крутить символы in-place, то будет сложнее -- символы-то переменной длины
это самое простое, строку UTF-8 можно читать в любом направлении.

а вот композитные(не путать с суррогатными парами UTF-16) типа

a + ogonek + acute = <U+0061, U+0328, U+0301>

переворачивать несколько сложнее
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817435
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможен ли вообще реверсный итератор по Utf-8 байтовому массиву?

Это как архив читать в обратном направлении.

Особенно в совокупности с копозитными символами.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817526
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВозможен ли вообще реверсный итератор по Utf-8 байтовому массиву?Разумеется возможен.
Отдельная кодовая точка состоит или из байта со сброшенным старшим битом или начинается байтом с двумя установленными старшими битами. Максимальный размер кодовой точки - четыре байта.
Соответственно, при любом направлении прохода по последовательности байт отдельные кодовые точки выделяются с примерно одинаковой (не)эффективностью.
Обработка составных символов от кодировки не зависит.
Всё, что требуется - аккуратно копировать кусочки байт вперёд и назад. Не просто, но реализуемо.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817534
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже думаю что возможно.

Кстати думаю что с некоторой структурой данных типа индексации.. можно
не реализовывать чтения Utf8 "взад". А просто "двигать" серединку строки влево.
По аналогии с сортировкой вставками.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817537
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил, не улавливаю связи с тем, о чём я рассуждал.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817559
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВозможен ли вообще реверсный итератор по Utf-8 байтовому массиву?
тривиален -
первый байт многобайтового символа 11xxyyyy
все последующие 10xxyyyy
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817562
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryИзопропил, не улавливаю связи с тем, о чём я рассуждал.
Хотел строковую библиотеку написать? - не забудь про UTF-8.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817567
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Трудность не в том. Поддержка Utf-8 обычно реализована как фильтр внешних данных.
А все манипуляции со строками в ядре системы должны ходить в Utf-16.

А то чем мы щас занимаемся это онанизм и вариации на тему как-бы впихнуть
"квадратную пробку в круглое отверстие".

Вобщем сон разума порождает чудовищ.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817572
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА все манипуляции со строками в ядре системы должны ходить в Utf-16.Фундаментальное заблуждение.
Корни растут из того факта, что изначально юникод делали по принципу "один символ - один код".
Я бы сказал, что есть два варианта:
1. utf8;
2. Упаковка 21-битных триад в блоки по восемь байт.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817623
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

речь об интерпретации композитных символов.

UTF-8 UTF-16 или UTF-32 не имеет ни малейшего значения.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817624
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА все манипуляции со строками в ядре системы должны ходить в Utf-16.
Ну тогда уж UTF-32
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817652
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov2. Упаковка 21-битных триад в блоки по восемь байт.
Это еще зачем?
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817653
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилmaytonА все манипуляции со строками в ядре системы должны ходить в Utf-16.
Ну тогда уж UTF-32
Не очень понял сарказма. Кому не хватает 64К букв?
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817661
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНе очень понял сарказма. Кому не хватает 64К букв?
алгоритму обработки. нечего ветви делать для обработки суррогатных пар.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817681
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНе очень понял сарказма. Кому не хватает 64К букв?Если вы не в курсе, то уже третья версия юникода содержала более ста тысяч (несоставных) символов. Текущая версия - шестая.

P.S. Собственно, 64КБукв не хватило уже тогда, когда Корея, Китай и Япония не договорились о единой схеме кодирования иероглифических символов.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817685
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто еще зачем?UTF-16 требует обрабатывать суррогатные пары, UTF-8 и UTF-32 - не требуют.
В UTF-8 - переменное число байт на кодовую точку, в UTF-32 - фиксированное, но бесполезно теряется одиннадцать бит.
Если упаковать 21-битные кодовые точки в битовую структуру, то мы оставляем фиксированное число бит на кодовую точку и достаточно существенно экономим на хранении данных.
...
Рейтинг: 0 / 0
Решение ряда задач.
    #38817714
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovв UTF-32 - фиксированное, но бесполезно теряется одиннадцать бит.
Если упаковать 21-битные кодовые точки в битовую структуру, то мы оставляем фиксированное число бит на кодовую точку и достаточно существенно экономим на хранении данных.
Понятно. Почему-то напомнило Base64.
...
Рейтинг: 0 / 0
25 сообщений из 100, страница 3 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / Решение ряда задач.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]