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);
谢谢
假设Byte
是byte
类型值的占位符,您的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;