Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: AnsiString mit fester Länge

  Alt 23. Apr 2009, 11:09
FastMM, MemCheck und Co. können aber auch nicht alle SpeicherLeaks finden ... vorallem fast alle die, welche nicht über den Speichermanager laufen, fallen nicht auf.


hab hier grad irgendwie den Überblick verloren ... wo/welche ist denn nun eigentlich eine aktuelle Version dieser Datei?

[add]
hab auch mal etwas gespielt
Delphi-Quellcode:
function tEndInd.Put32s(AData: LongInt): AnsiString;
begin
  SetLength(Result, 4);
  if MotorolaOrder then begin
    asm
      mov eax, &AData
      bswap eax
      mov edx, &Result
      mov edx, [edx]
      mov [edx], eax
    end;
  end else PLongInt(@Result[1])^ := aData;
end;

function tEndInd.Put32s(AData: LongInt): AnsiString;
begin
  SetLength(Result, 4);
  if MotorolaOrder then
    PLongInt(@Result[1])^ := SwapLong(AData)
  else PLongInt(@Result[1])^ := aData;
end;
via Pointer-Variable;
Delphi-Quellcode:
function tEndInd.Put32s(AData: LongInt): AnsiString;
var P: PLongInt;
begin
  SetLength(Result, 4);
  P := @Result[1];
  if MotorolaOrder then begin
    asm
      mov eax, &AData
      bswap eax
      mov edx, &P
      mov [edx], eax
    end;
  end else P^ := aData;
end;

function tEndInd.Put32s(AData: LongInt): AnsiString;
var P: PLongInt;
begin
  SetLength(Result, 4);
  P := @Result[1];
  if MotorolaOrder then
    P^ := SwapLong(AData)
  else P^ := aData;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat