![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться. Глючит Format!
Gek1 © (2004-12-04 11:36:00)Мастера, проблема такая:
Есть у меня Buf: array[0..61] of byte
в Buf содержиться некая последовательность байтиков.
Хочу посмотреть что лежит в Buf. Пишу:
for i := 0 to 61 do SHex := SHex + Format('%x', [Buf[I]]);
Form1.ListBox1.Items.Add(inttostr(Length(SHex)));
В итоге я вижу что длина Shex 123. На скока я знаю 62*2 будет 124 а никак не 123!
Мастера, подскажите в чем проблема?
begin...end (2004-12-04 11:53:00) [1]> [2] Gek1 (04.12.04 11:46)
А разве это проблема? Но если надо получать шестнадцатеричное представление, состоящее обязательно из двух символов, то я тут вижу два пути:
1) анализ результата Format: если длина равна 1, то дополнение нулём спереди;
2) использование IntToHex с параметром Digits = 2.
2-й вариант лучше.
Gek1 (2004-12-04 11:46:00) [2]
> begin...end
подскажи пожалуйста как можно эту проблему решить?
begin...end (2004-12-04 11:42:00) [3]> Gek1 (04.12.04 11:36)
> подскажите в чем проблема?
Проблема, наверное, в том, что, например, Format('%x', [1]) = '1', а не '01'.