本文整理自网络,侵删。
procedure HexStrToBytes(hHexStr: String; pbyteArray: Pointer);var i, j:WORD; tempPtr:PChar; twoDigits:String[2];begin tempPtr := pbyteArray; j := 1; for i := 1 to (Length(hHexStr) DIV 2) do begin twoDigits:=Copy(hHexStr, j, 2); Inc(j, 2); PByte(tempPtr)^:=StrToInt('$' + twoDigits); Inc(tempPtr); end;end;
// 调用实例 // sOutBuf:array[0..512] of byte; retstr: string; // BytesToHexStr(retstr,@sOutBuf[0],outLen);procedure BytesToHexStr(var hHexStr: String; pbyteArray: PByte; InputLength: WORD);Const HexChars : Array[0..15] of Char = '0123456789ABCDEF';var i, j: WORD;begin SetLength(hHexStr, (InputLength * 2)); FillChar(hHexStr[1], InputLength * 2, #0); j := 1; for i := 1 to InputLength do begin hHexStr[j] := Char(HexChars[pbyteArray^ shr 4]); inc(j); hHexStr[j] := Char(HexChars[pbyteArray^ and 15]); inc(j); inc(pbyteArray); end;end;
相关阅读 >>
Delphi regularexpressions 正则表达式如何忽略大小写
[译]rad studio 10.4 新变化:面向控件的 vcl 样式管理
更多相关阅读请进入《Delphi》频道 >>