Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.19;
Скачать: CL | DM;

Вниз

Помогите разобраться. Глючит Format!   Найти похожие ветки 

 
Gek1   (2004-12-04 11:36) [0]

Мастера, проблема такая:
Есть у меня 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:42) [1]

> Gek1   (04.12.04 11:36)

> подскажите в чем проблема?

Проблема, наверное, в том, что, например, Format("%x", [1]) = "1", а не "01".


 
Gek1   (2004-12-04 11:46) [2]


> begin...end

подскажи пожалуйста как можно эту проблему решить?


 
begin...end ©   (2004-12-04 11:53) [3]

> [2] Gek1   (04.12.04 11:46)

А разве это проблема? Но если надо получать шестнадцатеричное представление, состоящее обязательно из двух символов, то я тут вижу два пути:

1) анализ результата Format: если длина равна 1, то дополнение нулём спереди;
2) использование IntToHex с параметром Digits = 2.

2-й вариант лучше.



Страницы: 1 вся ветка

Текущий архив: 2004.12.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
1-1101969351
Frozzen
2004-12-02 09:35
2004.12.19
Алгоритмы защиты от свободного копированя


3-1100857001
Fishka
2004-11-19 12:36
2004.12.19
Поле типа Memo - при больших объемах ошибка!


14-1101307465
Chlavik
2004-11-24 17:44
2004.12.19
Новый раздел форума...


14-1101488372
Alex_Petr
2004-11-26 19:59
2004.12.19
На тему давления авторитетом.


1-1101746408
hamster
2004-11-29 19:40
2004.12.19
Turbo pascal - выключение