
Конвертирование юникодных числовых символов в цифры
Предположим, ваше приложение работает с числами, полученными от пользователя через текстовые поля ввода. Почти со стопроцентной вероятностью это будут привычные нам цифры 0..9, но теоретически в строке ввода могут оказаться юникодные символы из национальных алфавитов, обозначающие цифры. Например, на деванагари (꣑꣒꣓), арабском (٤٥٦) или саураштра (꣗꣘꣙).Преобразование таких национальных символов в привычные нам цифры легко выполняется одной единственной функцией FoldString. FASM не в курсе о существовании нужного нам флага MAP_FOLDDIGITS, так что придется обозначить его самостоятельно. В остальном никаких сложностей.
Code (Assembler) : Убрать нумерацию
- buff rw 100h
- num rw 100h
- MAP_FOLDDIGITS = 128
- ...
- ...
- ...
- ; Получить строку из поля ввода
- invoke GetDlgItemText,[hwnddlg],ID_TXT,buff,100h
- ; Сконвертировать юникодные числовые символы в цифры
- invoke FoldString,MAP_FOLDDIGITS,buff,-1,num,100h
В приложении пример программы, которая конвертирует юникодные числовые символы в привычные нам цифры. С исходником аккуратнее, открывайте его только в редакторе, который поддерживает юникод.
Просмотров: 1349 | Комментариев: 0
Метки: Assembler

Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Комментариeв нет

Добавить комментарий
Заполните форму для добавления комментария
