当从串口收到数据01 30 30 30 30 30 30 30 30 30 30 01, Str内容为#1'0000000000'#1,怎样把Str字符串的内容拷贝到比特数组rbuf中?
Len:=ComPort.ReadStr(Str, Count);
p:=Integer(Str); //@str:=$12fD70 //@$12fD70:=$D693D8
Memo.Lines.Add('Integer(Str)='+IntToHex(p,4));
p:=Integer(PChar(Str));
Memo.Lines.Add('Integer(PChar(Str))='+IntToHex(p,4));
p:=Integer(PChar(Str)^);
Memo.Lines.Add('Integer(PChar(Str)^)'+IntToHex(p,4));
Move(PChar(Str)^,rbuf,len); //第一种方法
//Move(Str,rbuf,Len); //错误的调用
Move(Pointer(Integer(Str))^,rbuf,Len);//第二种方法
for i:=0 to Len-1 do
HexStr:=HexStr+IntToHex(rbuf[i],2)+' ';
Memo.Lines.Add(HexStr);
Memo.Text := Memo.Text + Str;
则输出:
Integer(Str)=D693D8
Integer(PChar(Str))=D693D8
Integer(PChar(Str)^)0001
01 30 30 30 30 30 30 30 30 30 30 01
0000000000