WendyH писал(а):
2) Функции HmsStringToHex и HmsCryptFormatEncode("HEX", ... ) возвращают неверные данные, если код символа больше 127.
Например: HmsStringToHex( chr(200) ) должен возвращать "с8", вместо этого возвращает "45".
Все подкасты или скрипты использующие эти функции не будут работать или будут работать неправильно.
В версии 3.0 функция chr возвращает WideChar (2 байта), в предыдущих версиях возвращался AnsiChar (1 байт) и вопрос о работе функции в данном случае остается открытым.
Цитата:
ShowMessage(HmsStringToHex(HmsHexToString(Format('%x', [200])))) - результат с8
На данный момент HmsStringToHex ожидает "правильно" преобразованную Ansi-строку в Wide-строку (преобразование использует страницу 1251),
которая проходила бы обратное преобразование (Wide - Ansi).
Функция AnsiChr, которая будет возращать "правильно" преобразованный символ будет добавлена, но в зависимости от реальной задачи, наверно надо использовать другое решение (без использования Chr, AnsiChr).