delphi 串口常用的字符串转换函数  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 串口常用的字符串转换函数


(*********************取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;

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.035913228988647 seconds