求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方法? 展开
sbuf[2]:=byte($01) ; //命令号
sbuf[3]:=byte($00) ;
sbuf[4]:=byte($00) ;
sbuf[5]:=byte($00) ;
sbuf[6]:=byte($00) ;
把sbuf数组转成pchar方法? 展开
展开全部
//直接传递指针就可以了, 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);
//列个例子,看看区别吧
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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询