Einzelnen Beitrag anzeigen

NicoDE
(Gast)

n/a Beiträge
 
#10

Re: FileStream.Size ist negativ (Datei größer als 2GB)

  Alt 19. Mär 2005, 19:03
Zitat von Binärbaum:
Hier mal eine Funktion, die den negativen Wert in die richtige Entsprechung umrechnet
Man könnte das ganze kompatibler gestalten, indem man einen Int64 zurückgibt und eine überladene Funktion mit einem Int64 als Paramater schreibt (falls das Property von TFileStream in einer anderen Delphi-Version tatsächlich Int64 liefert...).

edit: ein Int64(Longword(aSize)) hätte es auch getan, die Additionen sorgen nur für Probleme bei aktivierten Overflow-Checks.

Delphi-Quellcode:
function HackIt(Size: Longint): Int64; overload;
{$IFDEF WIN32}
asm
        xor edx, edx
end;
{$ELSE}
begin
  Result := Longword(Size);
end;
{$ENDIF}

function HackIt(Size: Int64): Int64; overload;
{$IFDEF WIN32}
asm
  // fixme :)
end;
{$ELSE}
begin
  Result := Size;
end;
{$ENDIF}
  Mit Zitat antworten Zitat