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的字符截取函数leftstr,midstr,rightstr的介绍以及字符串拆分

Delphi改变图片的像素,即大小

Delphi 如何快速读取文本文件

Delphi 一个线程安全的轻量级的日志类

Delphi 24位真彩色图形转化为ico文件

Delphi 获取android包名称

Delphi更新本地时间

Delphi 使用资源文件

Delphi 判断特定字符是为单字节还是双字节

dll 的静态调用实例代码

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



打赏

取消

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

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

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

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

评论

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