würde dann Bytegenau in Chars umkopieren (auch unter
Unicode / ab Delphi 2009)
Delphi-Quellcode:
function bufferToString(var Buf; Len: Integer): String;
var
i: Integer;
begin
SetLength(Result, Len);
for i := 0 to Len - 1 do
Result[i + 1] := Chr(PByte(@buf)[i]);
end;
würde den Puffer als
ANSI ansehn (und ab Delphi 2009 dieses nach
Unicode konvertieren)
Delphi-Quellcode:
function bufferToString(var Buf; Len: Integer): String;
var
S: AnsiString;
i: Integer;
begin
//SetLength(S, Len);
//for i := 0 to Len - 1 do
// S[i + 1] := PAnsiChar(@buf)[i];
//SetLength(S, Len);
//Move(Buf, S[1], Len); // optimiertes Kopieren
SetString(S, @Buf, Len); // oder eben Alles in Einem
Result := S;
end;
Wie gesagt, ohne Kenntnis der Lage (Eingangswerte, System und Wunschvorstellung über Ausgabewerte)
kann man einfach nix Genaueres sagen.