请问二进制如何赋值呢?(20分)

  • 主题发起人 主题发起人 abc516
  • 开始时间 开始时间
A

abc516

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用了mscomm,而且mscomm使用了cominputmodebinary,二进制的,
请问sss如何赋值。

procedure TForm1.Button1Click(Sender: TObject);
var
sss:array [0..5] of byte;
begin
sss[0]:=$55;
mscomm1.Output:=sss;
end;
end.
 
如果你做控制字用,可以写一个按位付值的过程
function PosValue(var APos,AValue:integer):integer;
var
i:integer;
begin
result:=AValue;
if AValue=0 then exit;
for i:=1 to APos-1 do //位置
result:=Result*2;
end;
如果你想作为数据发送,而通讯协议又不自己考虑,那你跟不用担心数据格式,按照十进制
发送就行
 
用Move
procedure TForm1.Button1Click(Sender: TObject);
var
sss:array [0..5] of byte;
begin
sss[0]:=$55;
move(mscomm1.Output,sss,1);//传一字节
move(mscomm1.Output,sss,sizeof(sss));//传sss大小
end;
end.
 
直接用String就可以了
var
sss: String;
begin
sss:=#$55;
MsComm1.Output:=sss;
end;
 
pihome说的对!
 
多人接受答案了。
 
后退
顶部