![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование в HEX [D7, XP]
dabreezy © (2006-02-20 10:23:00)Добрый день.
А есть ли функция для того, чтобы преобразовать строку в Hex?
Например вот так: мебель --> %EC%E5%E1%E5%EB%FC
Вернее можно получить десятичные числа, а потом преобразовать их в шеснадцатиричные.
В делфи есть ф-ция:
rocedure BinToHex(Buffer, Text: PChar; BufSize: Integer);
А как ей пользоваться? Чего-то не получается.
Заранее спасибо.
dabreezy (2006-02-20 10:42:00) [1]Спасибо всем!
begin...end (2006-02-20 10:39:00) [2]> dabreezy (20.02.06 10:23)
> В делфи есть ф-ция:
> rocedure BinToHex(Buffer, Text: PChar; BufSize: Integer);
> А как ей пользоваться? Чего-то не получается.
var
S, Hex: string;
begin
S := 'мебель';
SetLength(Hex, Length(S) * 2);
BinToHex(PChar(S), PChar(Hex), Length(S));
ShowMessage(Hex)
end
tesseract (2006-02-20 10:34:00) [3]не моё автор - Azret Botash Project JEDI.
function StrToHex(const Source: AnsiString): AnsiString;
var
P: PChar;
C, L, N: Integer;
BL, BH: Byte;
S: AnsiString;
begin
Result := '';
if Source <> '' then
begin
S := Source;
L := Length(S);
if Odd(L) then
begin
S := '0' + S;
Inc(L);
end;
P := PChar(S);
SetLength(Result, L div 2);
C := 1;
N := 1;
while C <= L do
begin
BH := CharHex(P^);
Inc(P);
BL := CharHex(P^);
Inc(P);
Inc(C, 2);
if (BH = $FF) or (BL = $FF) then
begin
Result := '';
Exit;
end;
Byte(Result[N]) := Byte((BH shl 4) + BL);
Inc(N);
end;
end;
end;