Имеется ( DBCS ) MBCS-строка. Имеется буфер приёмник, размера которого может не хватить для приёма всей строки.
Как подрезать MBCS строку чтобы она уместилась в буфере приёмнике и при этом не испортить double-byte символ (т.е. чтоб результирующая строка содержала только корректные символы)?
А может где-то есть готовые решения? — Подскажите.
Здравствуйте, YuryK, Вы писали:
YK>Имеется ( DBCS ) MBCS-строка. Имеется буфер приёмник, размера которого может не хватить для приёма всей строки. YK>Как подрезать MBCS строку чтобы она уместилась в буфере приёмнике и при этом не испортить double-byte символ (т.е. чтоб результирующая строка содержала только корректные символы)? YK>А может где-то есть готовые решения? — Подскажите.
Если Windows, то смотри функции CharNext/CharPrev/lstrcmp/lstrlen и иже с ними.
Они обрабатывают ANSI/SBCS/MBCS/UCS-2 с опиональной возможностью указания кодировки.
Здравствуйте, remark, Вы писали: R>Если Windows, то смотри функции CharNext/CharPrev/lstrcmp/lstrlen и иже с ними. R>Они обрабатывают ANSI/SBCS/MBCS/UCS-2 с опиональной возможностью указания кодировки.
Спасибо. Но может уже существует что-то готовое?
Здравствуйте, YuryK, Вы писали:
YK>Как подрезать MBCS строку чтобы она уместилась в буфере приёмнике и при этом не испортить double-byte символ (т.е. чтоб результирующая строка содержала только корректные символы)?
Ну, например, класть символы в буфер посимвольно, пока он не кончится. Ты итерировать строку посимвольно умеешь?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали: YK>>Как подрезать MBCS строку чтобы она уместилась в буфере приёмнике и при этом не испортить double-byte символ (т.е. чтоб результирующая строка содержала только корректные символы)?
E>Ну, например, класть символы в буфер посимвольно, пока он не кончится.
Ну, что же, такое решение выглядит весьма привлекательно спасибо
E>Ты итерировать строку посимвольно умеешь?
Может открыть новую тему по данному вопросу?
Чесно говоря хотелось бы найти готовое и проверенное решние — ведь задача наврное с бородой! — неужели нет сниппета ?
Здравствуйте, YuryK, Вы писали:
YK>Здравствуйте, remark, Вы писали: R>>Если Windows, то смотри функции CharNext/CharPrev/lstrcmp/lstrlen и иже с ними. R>>Они обрабатывают ANSI/SBCS/MBCS/UCS-2 с опиональной возможностью указания кодировки. YK>Спасибо. Но может уже существует что-то готовое?
Здравствуйте, remark, Вы писали: R>>>Если Windows, то смотри функции CharNext/CharPrev/lstrcmp/lstrlen и иже с ними. R>>>Они обрабатывают ANSI/SBCS/MBCS/UCS-2 с опиональной возможностью указания кодировки. YK>>Спасибо. Но может уже существует что-то готовое?
увы и ах функция : R>_mbsncpy
не подрезает строку, если буфер приёмник не готов принять всё строку
а поэтому R>
рано
Наврное я первый (!!!) у кого возникла эта проблема