Delphi内存指针操作说明--怎样把字符串的内容拷贝到比特数组中?

49 篇文章 0 订阅
15 篇文章 0 订阅

当从串口收到数据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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值