读书人

怎么将指针所指位置转换为16进制文本

发布时间: 2013-10-06 18:25:14 作者: rapoo

如何将指针所指位置转换为16进制文本
已经知道
Buffer: Pointer;
BufferLength: Word

如何将转换为16进制文本呢.

var
tmpArray : array[0..4096] of Byte;
ArraySize,i : DWORD;
Count : DWORD;
tmpStr : string;
pStr : PChar;
begin
pStr := Buffer;
tmpStr := string(pStr);
Dec(PStr);
for i:=0 to BufferLength-1 do
begin
inc(pStr);
tmpArray[i] := Byte(pStr^);
writeln(IntToHEX(Ord(tmpArray[i]),2));
end;

end;



实际上结果应该是
00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
但是
有丢包...
怎么将指针所指位置转换为16进制文本
[解决办法]
在delphi2010以上版本,PChar实际上是PWideChar,是不是这个原因造成的。
[解决办法]
定义 pStr : PAnsiChar;



[解决办法]


var
P : PByte;
i : integer;
begin
P := Buffer;
for i:=0 to Integer(BufferLength)-1 do begin
WriteLn(IntToHEX(P^,2));
Inc(P);
end;
end;


楼主,你的代码转了很多次数据哦
[解决办法]
是串口编程吗?用控件的话就把 IGNORENULLCHAR属性设置为FALSE, OUTX_XONXOFFFLOW 的值改为FALSE 。

读书人网 >.NET

热点推荐