Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.10.2010, 19:31
mag_cheater mag_cheater вне форума
Прохожий
 
Регистрация: 09.10.2010
Сообщения: 10
Репутация: 10
По умолчанию Hex-данные

Всем добрый день! Имеется следующая проблема. Реализую код на Delphi 2010, посредством которого на com-порт записываются данные в шестнадцатеричном виде. В частности, если использовать библиотеку COmPort Library, то синтаксис такой:

comport1.Writestr(#$ff+#$ff+#$01+#$01+#$06....

проблема состоит в том, что например в конце этих данных требуется контрольная сумма блока данных, который тоже меняется. Как мне записать уже посчитанные HEX данные? Посчитать их не проблема, но на выходе получится или integer (в десятичном виде) или Hex как стринговая переменная. Побывал переводить НЕХ в стринг, и записывать соответствующие этим НЕХ кодам символы но возникают проблемы с некоторыми числами (например delphi не сопоставляет символ коду AF и т.д.).
Ответить с цитированием
  #2  
Старый 09.10.2010, 19:42
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну это вряд-ли он не сопоставляет. Разницы никакой, запишете вы #$af или #175. Возможно имеет место неправильная обработка кодировки строки в D2010, там-же блин юникод, мать его...
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 09.10.2010, 19:54
mag_cheater mag_cheater вне форума
Прохожий
 
Регистрация: 09.10.2010
Сообщения: 10
Репутация: 10
По умолчанию

Да,там мать его юникод =) Ну а можно ли как-то получить из суммы чисел это AF (например) и отправить его командой writestr($#AF...) ну или writestr($175...), без применения преобразований в обычную стринговую переменную?
Ответить с цитированием
  #4  
Старый 25.10.2010, 11:48
MAD_EVAL MAD_EVAL вне форума
Прохожий
 
Регистрация: 28.11.2009
Сообщения: 16
Репутация: 10
По умолчанию

Вот Вам мой Int to Hex, у которого на выходе не строка

Код:
function convert(input : integer) : integer;
  var
  temp0, temp1 : integer;
begin
    temp1 := input shr 4;
        if temp1 > 9 then result := 255; // error
    temp0 := input and $0F;
        if temp0 > 9 then result := 255; // error
    result := 10 * temp1 + temp0;
end;
Ответить с цитированием
  #5  
Старый 25.10.2010, 15:45
mag_cheater mag_cheater вне форума
Прохожий
 
Регистрация: 09.10.2010
Сообщения: 10
Репутация: 10
По умолчанию

Спаибо. Там правда другие проблемы возникают, но это уже специфика. Пришлось писать сложнее, чем у Вас
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter