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;

相关阅读 >>

Delphi 设置richedit的行间距

Delphi控制台程序怎么清屏

Delphi 获取文件crc和md5

Delphi 正则表达式起步

Delphi中使用汇编(关于pos函数的问题)

Delphi inifile to xml

unigui js操作Delphi控件赋值

Delphi 2009 新增单元 character[1]: toupper、tolower - 字符与字符串的大小写转换

Delphi 在windows平台下实现进程隐藏

Delphi tchart使用经验小结

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...