![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
HexToBin(), BinToHex()
Beni © (2006-04-18 18:49:00)Приведите, пожалуйста, пример работы функций
BinToHex(Buffer: PAnsiCha; Text: PAnsiChar; BufSize: Integer)
и
HexToBin(Text: PAnsiChar; Buffer: PAnsiChar; BufSize: Integer)
Никак не могу понять, что нужно заносить в Buffer и BufSize?!
Beni (2006-04-20 09:08:00) [1]Всем спасибо за помощь
kilkennyCat (2006-04-18 19:40:00) [2]а я ваще тормоз..
Anatoly Podgoretsky (2006-04-18 19:30:00) [3]Джо © (18.04.06 19:28) [8]
Я говорил про SizeOf(V), но я уже поправился. Код абсолютно верный.
Anatoly Podgoretsky (2006-04-18 19:29:00) [4]Я не прав, третий параметр размер источника данных, а не буфера для результата, так что код SizeOf(V) верный.
Джо (2006-04-18 19:28:00) [5]> [6] Anatoly Podgoretsky © (18.04.06 19:25)
> Джо © (18.04.06 19:21) [5]
> Но у тебя то четыре, а не восемь.
У "меня" восемь: HexString: array [0..7] of Char;
Anatoly Podgoretsky (2006-04-18 19:26:00) [6]И в конце концов, более верная форма не
SizeOf(V)*2
а
SizeOf(V)*SizeOf(Char)
а то чревато.
Anatoly Podgoretsky (2006-04-18 19:25:00) [7]Джо © (18.04.06 19:21) [5]
Но у тебя то четыре, а не восемь.
Джо (2006-04-18 19:21:00) [8]> но в примере все равно 10 в 8 не влезет.
Влезет :-)
V это 4 байта (Integer). Для хранения каждого байта в текстовом шестнадцатерич. виде нужно 2 байта (от $00 до $FF). Итого — 8 байт.
kilkennyCat (2006-04-18 19:17:00) [9]да, верно, перепутал с обратной, но в примере все равно 10 в 8 не влезет.
Джо (2006-04-18 19:13:00) [10]> [2] kilkennyCat © (18.04.06 19:02)
> SizeOf(V)*2
Нет, нужно указывать размер буфера, передаваемого первым параметром.
kilkennyCat (2006-04-18 19:02:00) [11]
SizeOf(V) *2
Джо (2006-04-18 18:59:00) [12]
var
// массив размером 8 байт
// (два байта в массиве на каждый байт в V)
HexString: array [0..7] of Char;
V: Integer;
begin
V := 12345;
BinToHex(@V,HexString,SizeOf(V));
ShowMessage (HexString)
end;
С обратной функцией аналогично. Читай описание в Справке.