Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Größe einer Datei bestimmen (https://www.delphipraxis.net/15098-groesse-einer-datei-bestimmen.html)

himitsu 13. Okt 2012 03:25

AW: Re: Größe einer Datei bestimmen
 
Delphi-Quellcode:
Result := (Int64(wfd.nFileSizeHigh) shl 32) or wfd.nFileSizeLow;

// oder

Int64Rec(Result).Lo := wfd.nFileSizeLow;
Int64Rec(Result).Hi := wfd.nFileSizeHigh;
Und nein, das mit MAXDWORD funktioniert auch ... also wenn man es richtig macht. :angle2:
Delphi-Quellcode:
Result := (Int64(wfd.nFileSizeHigh) * (Int64(MAXDWORD) + 1)) + Int64(wfd.nFileSizeLow);
Aber wenn man weiß, wie in einem 32-Bit-Delphi die 64-Integeroperationen aufgebaut sind, dann läßt man soeinen Mist wie * (MUL), DIV und MOD.

Furtbichler 13. Okt 2012 07:43

AW: Re: Größe einer Datei bestimmen
 
Zitat:

Zitat von Luckie (Beitrag 109964)
Hm. Und warum verschweigst du ihm den Rest:
Zitat:

Note: FileSize can't be used on a text file.
Oder anders: Deine Antwort würde auf die Frage passen: "Wie viele Datensätze befinden sich in einer typisierten Datei?"

Die größe von binären Dateien kann man so nicht bestimmen!

Ach was.
Delphi-Quellcode:
Function TheSizeOf (aFileName : String) : Integer;
Var
 f : File Of Byte;

begin
  AssignFile(f,aFileName);
  ReSet(f);
  MyFileSize := FileSize(F);
  closefile(F);
End;
funktioniert. (Bis 2GB?)

Mir ist neu, das das vom Inhalt abhängt. Die OH besagt übrigens, das 'F' nicht vom Typ 'Textfile' sein darf/kann.
Zitat:

Zitat von fkerber (Beitrag 109966)
Also Merkregel: :arrow: Hilfe immer ganz lesen :lol:

Yo, und anzweifeln. Immer anzweifeln und selber probieren.

himitsu 13. Okt 2012 10:22

AW: Größe einer Datei bestimmen
 
Nur zum Auslesen der Dateigröße besser nicht über das System.FileSize gehn, denn was mag wohl pasieren, wenn man Zugriffsrechte besitzt oder irgendwer die Datei gerade geöffnet hat?


Was mich aber extrem verwundert:
- Bei den Dateifunktionen in der SysUitls hat man tatsächlich die Dateigröße vergessen zu implementieren. :shock:
- Und sogar bei den neuen Funktionen der Delphi-Referenz durchsuchenIOUtils.TFile hat man das total vergessen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz