Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

Re: Untyped Parameter var Buf

  Alt 3. Jun 2010, 11: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat