在Delphi中用字符串表示字符串

时间:2016-08-25 07:45:35

标签: c# string delphi byte

我想在Delphi中将Byte转换为String

例如,在c#中的

是:

Convert.ToString(Byte, 16);

我试过了:

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

由于

2 个答案:

答案 0 :(得分:4)

假设Byte是类型为byte的值的占位符,则您的C#代码会将单字节转换为其十六进制表示形式。 Delphi等价物是IntToHex

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

您的Delphi代码暗示您实际上希望将字节数组转换为十六进制表示形式。在这种情况下,您需要的功能是BinToHex。我真的不能给你更多细节,因为你的问题本身缺乏细节。如果不了解变量的类型,我们就会做出猜测。在将来的问题中,提供Minimal, Complete, and Verifiable example是明智的。

答案 1 :(得分:-1)

最后我使用这个功能;

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;
相关问题