![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преоброзование данных
ZV © (2010-08-30 18:28:00)Есть массив целых чисел типа
Byte, допустим79,166,57,....ониже в НЕХ формате4f,a6,39,....Так вот мне нужно их преобразовать в такой вид4,f,a,6,3,9,....При помощи какой функции это можно сделать в Delphi ?
Anatoly Podgoretsky (2010-08-31 09:08:00) [1]
> for i:=1 to N do St:=St+ IntToHex(Bytes[i],2);
>
И как тогда понимать это, если ты с HEX не работаешь
> Спасибо .Сейчас попробую
Anatoly Podgoretsky (2010-08-31 09:06:00) [2]
> Устройство работает не с НЕХ кодами
Как тогда понимать это
> мне нужно их преобразовать в такой вид
Германн (2010-08-31 00:51:00) [3]
> Сергей М. © (30.08.10 21:22) [8]
>
>
Встречал я такой протокол однажды.
Сергей М. (2010-08-30 21:22:00) [4]
> ZV © (30.08.10 18:56) [3]
А давай ты уже не будешь нести здесь фривольную отсебячину и приведешь один-в-один соотв.фрагмент оригинальной документации , касаемой протокола инф.обмена с этим устройством ?
ZV (2010-08-30 20:53:00) [5]Спасибо .Сейчас попробую
Германн (2010-08-30 20:19:00) [6]
> При помощи какой функции это можно сделать в Delphi ?
var
St : String;
St:='';
for i:=1 to N do St:=St+IntToHex(Bytes[i],2);
ZV (2010-08-30 19:53:00) [7]Устройство работает не с НЕХ кодами, а с данными. Я привел пример в НЕХ формате что бы было понятно что я хочу.
Вот как принимает данные устройство код на Си
char tetrada(B:char)
{
if (B <=9) return(B-'0');
else return(B-'A'+10);
}
unsigned char decod (void)
{
unsigned char Data;
Data = tetrada(getchar())<<4 | terada(getchar());
}
Anatoly Podgoretsky (2010-08-30 19:09:00) [8]> ZV (30.08.2010 18:56:03) [3]
Ну и нафига ты тогда указываешь формат с запятыми, и я весьма соневаюсь, что
устройство работает с HEX кодами.
ZV (2010-08-30 18:56:00) [9]
> Впрочем, смотря что понимать под "преобразовать".
Дело в том что устройство которому необходимо передать данные (по СОМ порту), нужно отпровлять данные в таком формате:
если нужно отправить число 4f, то в порт нужно передать сперва бай 4 а потом f.
Сергей М. (2010-08-30 18:32:00) [10]Впрочем, смотря что понимать под "преобразовать".
В первом приближении можно воспользоваться штатной BinToHex
Сергей М. (2010-08-30 18:30:00) [11]При помощи самописной.