当从串口收到数据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
Delphi内存指针操作说明--怎样把字符串的内容拷贝到比特数组中?
最新推荐文章于 2022-12-17 20:58:35 发布
本文介绍如何将从串口接收到的特定格式数据转换并存储到位数组中,通过不同方法演示如何实现这一过程,并展示了具体的Delphi代码实现。

183

被折叠的 条评论
为什么被折叠?



