当前位置:主页>仓库管理软件> 列表

mscomm数据发送小问题!

财务软件版1楼: var senddata:array[1..10] of char; sendstr:string;
begin
senddata[1]:=chr($ff); //要发送的数据
senddata[2]:=chr($ff);
senddata[3]:=chr($ff);
senddata[4]:=chr($07);
senddata[5]:=chr($80);
senddata[6]:=chr($+strtoint(edit1.Text));
senddata[7]:=chr($11);
for i:=1 to 7 do
sendstr:=sendstr + senddata[i];
mscomm2.output:=sendstr;
end;
各位大虾请指导小弟,如何将edit内的值大于128时的值转成char类型,也就是当edit中输入224时 senddata[6]:=chr($e0);

2楼: uses Variants;

var
buffer_send : Variant;
begin
buffer_send := VarArrayCreate([0, 4], varByte);
buffer_send[0] := $ff;
buffer_send[1] := $ff;
buffer_send[2] := $f4;
buffer_send[3] := $e2;
buffer_send[4] := $d1;
mscomm1.Output := buffer_send;
end; 如进销存软件免费下载

3楼: ifiles:如何将224转成16进制数!inttodex()转完以后是字符型的,这个问题如何解决?

4楼: senddata[6]:=chr($+strtoint(edit1.Text));
----->
senddata[6]:=chr(strtoint(edit1.Text));

5楼: 你指的是把 ''224'' 转为数值吧,
buffer_send[4] := StrToInt(''224'');

6楼: Chr就是就是将序号转换为字符的,如果edit1中输入的是序号直接用senddata[6]:=chr(strtoint(edit1.Text));就行
inttohex(strtoint(edit1.Text),2)是指把整型数转换为两个字节的十六进制显示

财务软件版7楼: ok 谢谢 大家!!!