СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как правильно конвертировать текстовую строку (буквы+цифры+спец_символы) в 16-ричный вид?

Ответ

Вот функция, она преобразовывает значение типа "byte" в строку, состоящую из двух символов (как в HEX-виверах). Перебери все символы и отправь их коды поочереди в эту функцию — получишь набор шестнадцатиричных кодов. Минус — она рассчитана на ASCII таблицу символов. Если будет выдавать неправильный код символа — подправь значения в строках (1) и (2) — у меня они равны 55. Это разница между цифрой (0..9) и буквами (A..F) из таблицы символов.

function TForm1.IntToHex(a:byte):string;
var
s:string;
t1,t2:byte;
begin
s:='';
t1:=a div 16;
t2:=a mod 16;
if t1<10 then s:=s+inttostr(t1)
else s:=s+chr(t1+55); //(1)
if t2<10 then s:=s+inttostr(t2)
else s:=s+chr(t2+55); //(2)
IntToHex:=s;
end;


Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация