求delphi byte数组转Pchar的方法? 10

sbuf[1]:=byte($fc);//帧头sbuf[2]:=byte($01);//命令号sbuf[3]:=byte($00);sbuf[4]:=byte($00);... sbuf[1]:=byte($fc); //帧头
sbuf[2]:=byte($01) ; //命令号
sbuf[3]:=byte($00) ;
sbuf[4]:=byte($00) ;
sbuf[5]:=byte($00) ;
sbuf[6]:=byte($00) ;
把sbuf数组转成pchar方法?
展开
 我来答
renzhumin2
2011-07-12 · TA获得超过163个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:270万
展开全部
//直接传递指针就可以了, tempchar := @sbuf;
//列个例子,看看区别吧
var
sbuf : array[0..5] of byte;
tempchar : pchar;
i : integer;
hexstr : string;
begin
fillchar(sbuf,sizeof(sbuf),0);//初始化sbuf的值,全为0
//数组的计算位置,应该是0开始的。sbuf[0]
sbuf[0]:=byte($fc); //帧头
sbuf[1]:=byte($01); //命令号
sbuf[2]:=byte($00);
sbuf[3]:=byte($00);
sbuf[4]:=byte($00);
sbuf[5]:=byte($AA);
tempchar := @sbuf;
//直接传递指针就可以了, tempchar := @sbuf;但是,
//pchar是字符指针类型,终止字符串操控符号为#0,按F1看帮助说明,google翻译一下
//所以,#0后面的数据,以上数据实际上,转换成pchar之后的运算结果只剩2位了,
for i := 0 to Length(tempchar) -1 do
Hexstr := hexstr+' ' +IntTohex(byte(tempchar[i]),2);
showmessage(hexstr);

fillchar(sbuf,sizeof(sbuf),0);//初始化sbuf的值,全为0
tempchar := #1#0#0#0#0#2;
copymemory(@sbuf,tempchar,6);//pchar,转array[] of byte
//因为运算类型不一样,所以,sbuf的值得是#1#0#0#0#0#2;
hexstr := '';
for i := 0 to sizeof(sbuf)-1 do
hexstr := hexstr+' ' +IntTohex(sbuf[i],2);
showmessage(hexstr);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式