Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Преобразование в 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо