Старожил
Сообщения: 352
Благодарности: 193
|
Профиль
|
Отправить PM
| Цитировать
MKN, Вся видимая сложность тут для ускорения и некоторых дополнительных плюшек. А так, тут нет никакой магии, только примитивный парсинг строки и знание, что с помощью плагина System можно преобразовывать код символа в символ и обратно.
Цикл в StrUnicodeUnescape_ очень простой, умеет обнаруживаь и преобразовывать последовательность \u#### в юникод-символ. Без каких либо дополнительных проверок на корректность читаемых данных. По хорошему, надо, как минимум, добавить проверку на то, что после '\u' есть ровно четыре символа, которые являются валидным hex-числом.
largelog.exe - это мой специальный тестовый UI большего размера (230% оригинала) для дебага через DetailPrint.
Три варианта демонстрируют возможность читать строку со стека и записывать результат в стек. Это может быть полезно в сочетании в вызовами WinAPI функций через System::Call.
Декодируются все коды формата \u####
|
Отправлено: 14:21, 27-10-2023
| #2820
|