Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

Re: Untyped Parameter var Buf

  Alt 3. Jun 2010, 12:38
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.
$2B or not $2B
  Mit Zitat antworten Zitat