Показать сообщение отдельно
  #3  
Старый 05.07.2011, 19:30
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Код:
var
  i:integer;
  tmpDec,tmpHex:string;
begin
  tmpHex:='';
  tmpDec:='';
  for i:=0 to nRead-1 do
  begin
    tmpDec:=tmpDec+IntToStr(byte(RCBuf[i]));// для десятичных значений
    tmpHex:= tmpHex+IntToHex(byte(RCBuf[i]),2);// для шестнадцатиричных значений
  end;
    RcDataLabel.Caption:=tmpDec;// то, что вам надо
// или    RcDataLabel.Caption:=tmpHex;
end;
без разницы в чем приходит - ведь приходят значения байтов ... а вот как это дело интерпретировать - в Hex, Integer или ASCII (как вы пытаетесь, но видимо ридер отвечает не в ASCII) - головная боль разработчика обработчика

З.Ы. буфер для приема (у вас RCBuf:PChar) лучше делать как Pointer и перед чтением распределять память, а потом освобождать (PChar - указатель на строку, где конец строки обозначается байтом со значением 0, а если в ответе устройства будет значение нуля, то данные после нуля (да и сам нуль) вы потеряете)
З.Ы.Ы. IntToHex, вроде как, начиная только с Delphi7, если Delphi младше (всякое бывает), то IntToHex писать самому - ну а тут гугл в помощь
З.Ы.Ы.Ы. RFID'ами балуетесь?
Ответить с цитированием