送信データ(HEX:00,21,93,03,b1)をCommXでの受信バッファの表示は、#0,'!',#147,#3,'ァ'です。これを、00219303b1 と変換表示したいのですがうまくいきません。どなたか教えてください。ちなみに環境は、Delphi2005,
WinXpです。よろしくお願いします。
どううまくいきませんか?
IntToHexは?
IntToHex使っていますが、21をIntToHexすると15となり表示すると'!'。
うまくいきません。
> IntToHex使っていますが、21をIntToHexすると15となり表示すると'!'。
数値と文字、文字コードについての知識が必要ですね。あと10進と16進数についても。
数値の十進表示の21は、16進表示で15となり、一方21を16進数として
これを文字コードとして表示すると '!' に対応しています。
混乱しなければ、うまくいっているようですが。
#0 -> '00'
'!' -> '21'
#147 -> '93'
#3 -> '03'
'ア' -> 'b1'
と変換表示したいのですがうまくいきません。
var
Buf: PChar = #$00#$21#$93#$03#$b1#$00;
procedure TForm1.ButtonXClick(Sender: TObject);
function func(Buf: PChar; Size: Integer): string;
var
i: Integer;
begin
result := '';
for i:=0 to Pred(Size) do begin
result := result + IntToHex(Byte(Buf[i]), 2);
end;
end;
begin
MemoX.Lines.Add(func(Buf, 5));
end;
IntToHex(Ord('!'), 2) = '21'
'!' = 33 = $21
宣伝さん、りおりおさん そして 孫の手さんへ
アドバイスありがとうございました。
目的の受信表示が出来るようになりました。
ツイート | ![]() |