Delphi中的字节到字符串

本文关键字:字符串 字节 Delphi | 更新日期: 2023-09-27 18:04:06

我想在Delphi中将Byte转换为String

例如c#中的

是:

Convert.ToString(Byte, 16);

我试着:

SetString(AnsiStr, PAnsiChar(@ByteArray[0]), LengthOfByteArray);
StringVar := Chr(ByteVar);

谢谢

Delphi中的字节到字符串

假设Bytebyte类型值的占位符,您的c#代码将单字节转换为其十六进制表示。Delphi等效值为IntToHex

var
  s: string;
  b: Byte;
....
b := ...;
s := IntToHex(b);

您的Delphi代码提示您实际上希望将字节数组转换为十六进制表示。在这种情况下,您需要的函数是BinToHex。我真的不能给你更多的细节,因为你的问题本身缺乏细节。由于不知道变量的类型,我们只能进行猜测。在将来的问题中,提供一个最小的、完整的和可验证的示例将是明智的。

最后使用这个函数;

function TForm1.bintostr(const bin: array of byte): string;
const HexSymbols = '0123456789ABCDEF';
var i: integer;
begin
  SetLength(Result, 2*Length(bin));
  for i :=  0 to Length(bin)-1 do begin
    Result[1 + 2*i + 0] := HexSymbols[1 + bin[i] shr 4];
    Result[1 + 2*i + 1] := HexSymbols[1 + bin[i] and $0F];
  end;
end;