Как подрезать MBCS строку?
От: YuryK Украина  
Дата: 10.10.07 12:08
Оценка:
Имеется ( DBCS ) MBCS-строка. Имеется буфер приёмник, размера которого может не хватить для приёма всей строки.
Как подрезать MBCS строку чтобы она уместилась в буфере приёмнике и при этом не испортить double-byte символ (т.е. чтоб результирующая строка содержала только корректные символы)?
А может где-то есть готовые решения? — Подскажите.
Re: Как подрезать MBCS строку?
От: remark Россия http://www.1024cores.net/
Дата: 10.10.07 12:32
Оценка:
Здравствуйте, YuryK, Вы писали:

YK>Имеется ( DBCS ) MBCS-строка. Имеется буфер приёмник, размера которого может не хватить для приёма всей строки.

YK>Как подрезать MBCS строку чтобы она уместилась в буфере приёмнике и при этом не испортить double-byte символ (т.е. чтоб результирующая строка содержала только корректные символы)?
YK>А может где-то есть готовые решения? — Подскажите.

Если Windows, то смотри функции CharNext/CharPrev/lstrcmp/lstrlen и иже с ними.
Они обрабатывают ANSI/SBCS/MBCS/UCS-2 с опиональной возможностью указания кодировки.


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[2]: Как подрезать MBCS строку?
От: YuryK Украина  
Дата: 10.10.07 12:44
Оценка:
Здравствуйте, remark, Вы писали:
R>Если Windows, то смотри функции CharNext/CharPrev/lstrcmp/lstrlen и иже с ними.
R>Они обрабатывают ANSI/SBCS/MBCS/UCS-2 с опиональной возможностью указания кодировки.
Спасибо. Но может уже существует что-то готовое?
Re: Как подрезать MBCS строку?
От: Erop Россия  
Дата: 10.10.07 12:52
Оценка:
Здравствуйте, YuryK, Вы писали:

YK>Как подрезать MBCS строку чтобы она уместилась в буфере приёмнике и при этом не испортить double-byte символ (т.е. чтоб результирующая строка содержала только корректные символы)?

Ну, например, класть символы в буфер посимвольно, пока он не кончится. Ты итерировать строку посимвольно умеешь?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Как подрезать MBCS строку?
От: YuryK Украина  
Дата: 10.10.07 13:17
Оценка:
Здравствуйте, Erop, Вы писали:
YK>>Как подрезать MBCS строку чтобы она уместилась в буфере приёмнике и при этом не испортить double-byte символ (т.е. чтоб результирующая строка содержала только корректные символы)?

E>Ну, например, класть символы в буфер посимвольно, пока он не кончится.

Ну, что же, такое решение выглядит весьма привлекательно спасибо

E>Ты итерировать строку посимвольно умеешь?

Может открыть новую тему по данному вопросу?

Чесно говоря хотелось бы найти готовое и проверенное решние — ведь задача наврное с бородой! — неужели нет сниппета ?
Re[3]: Как подрезать MBCS строку?
От: remark Россия http://www.1024cores.net/
Дата: 10.10.07 13:28
Оценка:
Здравствуйте, YuryK, Вы писали:

YK>Здравствуйте, remark, Вы писали:

R>>Если Windows, то смотри функции CharNext/CharPrev/lstrcmp/lstrlen и иже с ними.
R>>Они обрабатывают ANSI/SBCS/MBCS/UCS-2 с опиональной возможностью указания кодировки.
YK>Спасибо. Но может уже существует что-то готовое?

_mbsncpy


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[4]: Как подрезать MBCS строку?
От: YuryK Украина  
Дата: 10.10.07 14:03
Оценка:
Здравствуйте, remark, Вы писали:
R>>>Если Windows, то смотри функции CharNext/CharPrev/lstrcmp/lstrlen и иже с ними.
R>>>Они обрабатывают ANSI/SBCS/MBCS/UCS-2 с опиональной возможностью указания кодировки.
YK>>Спасибо. Но может уже существует что-то готовое?

увы и ах функция :
R>_mbsncpy
не подрезает строку, если буфер приёмник не готов принять всё строку

а поэтому
R>
рано

Наврное я первый (!!!) у кого возникла эта проблема
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.