本文整理自网络,侵删。
(*********************取16进制字符的10进制的integer值*******************)function HexToInt(HexStr:String):Integer;var i,TempInt,LocalInt:Integer;begin HexStr:=UpperCase(HexStr); LocalInt:=1; Result:=0; for i:=Length(HexStr) downto 1 do begin if HexStr[i] in ['0'..'9'] then TempInt:=StrToInt(HexStr[i]) else TempInt:=Ord(HexStr[i])-Ord('A')+10; if i=Length(HexStr) then LocalInt:=1 else LocalInt:=LocalInt*16; Result:=Result+TempInt*LocalInt; end;end;//*********************取16进制字符的10进制的integer值************** {***********************格式化输出********************************} function TFcomm.FormatHexDisp(const asHex: string): string;var k, iLen:integer;begin Result:= asHex; iLen:=length(Result); if (iLen mod 2)=1 then begin Result := '0' + Result; Inc(iLen); end; for k:=iLen downto 1 do begin if (k mod 2)=1 then Continue; Insert(' ', Result, k - 1); end; Result := Trim(Result);end;{***********************格式化输出********************************} {*******************字符转成ASCII码16进制的值**************************} function TFcomm.GetHex(const aStr: string): string;var k: Integer;begin for k := 1 to Length(aStr) do begin Result := Result + Format('%.2x', [Ord(aStr[k])]); end;end; {*******************字符转成ASCII码16进制的值**************************} {****************Unicode码转换成ASCII码***************}function TFcomm.UnicodeHexToStr(const asUnicodeHex: string): string;var i: Integer; sTemp: string;begin for i := 1 to Length(asUnicodeHex) do begin if i mod 4 = 0 then begin sTemp := Copy(asUnicodeHex, i - 3, 4); sTemp := WideChar(StrToIntDef('$' + sTemp, 0)); Result := Result + sTemp; end; end;end; function DecodeUniCode(s:String):WideString;var p:PWord; i,len:Integer; TempChar:WideChar; t:String;begin New(p); Result:=''; len:=Length(s) div 4; for i:=0 to Len-1 do begin t:=Copy(s,4*i+1,4); p^:=HexToInt(t); Move(p^,TempChar,2); Result:=Result+TempChar; end; Dispose(p);end;
相关阅读 >>
Delphi webbrowser设置自己定义user-agent
Delphi cb_addstring 与lb_addstring的区别?
Delphi unicode转汉字 ,支持自动过滤非 unicode编码
更多相关阅读请进入《Delphi》频道 >>