Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dateigröße formatieren? (https://www.delphipraxis.net/57728-dateigroesse-formatieren.html)

mlspider 25. Nov 2005 16:25


Dateigröße formatieren?
 
Hallo,

ich lasse mir die Größe einer Datei wie folgt ermitteln:

Delphi-Quellcode:
function CheckFileSize(aFilename: string): integer;
var
   f: file of Byte;
   size: Longint;
begin
AssignFile(f, aFilename);
Reset(f);
try
   size := FileSize(f);
finally
   CloseFile(f);
end;
Result := size;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Edit1.Text := (InttoStr(CheckFileSize(Edit2.Text)));
end;
Ich möchte jetzt die Größenangabe formatieren (zb:Angabe in MB). Aber wie?

igel457 25. Nov 2005 16:35

Re: Dateigröße formatieren?
 
Mach eine Funktion FileSizeToStr:

Delphi-Quellcode:
function FileSizeToStr(size:int64):string;
begin
  if size < 1024 then result := inttostr(size)+'Byte';
  if (size > 1024) and (size < 1024*1024) then result := formatfloat('0.00',size/1024)+'KB';
  if (size > 1024*1024) and (size < 1024*1024*1024) then
   result := formatfloat('0.00',size/1024/1024)+'MB';
  if (size > 1024*1024*1024) then
   result := formatfloat('0.00',size/1024/1024/1024)+'GB';
end;
Hoffe das hilft...

mlspider 25. Nov 2005 16:37

Re: Dateigröße formatieren?
 
Und wie wäre der Aufruf in einer Procedur?

Habe Deine Funkion eingebaut. Leider gibt mir der Compiler folgende Fehlermeldung aus:

Funktion benötigt Ereignistyp

xaromz 25. Nov 2005 16:44

Re: Dateigröße formatieren?
 
Hallo,

da ist ein Fehler:
Delphi-Quellcode:
function FileSizeToStr(size:int64): String; // <- das muss noch dazu
Gruß
xaromz

Sharky 25. Nov 2005 16:45

Re: Dateigröße formatieren?
 
Hai mlspider,

da ist ein kleiner Fehler in der Deklaration. Mach aus:
Code:
function FileSizeToStr(size:int64);
einfach
Code:
function FileSizeToStr(size:int64) : String;

dahead 25. Nov 2005 16:52

Re: Dateigröße formatieren?
 
ich hab mir für diesen zweck das hier gebastelt (finde ich persönlich etwas übersichtlicher):

edit: gepostete funktion muss überarbeitet werden, daher entfernt.

Luckie 25. Nov 2005 16:55

Re: Dateigröße formatieren?
 
Ein KB hat aber 1.024 Byte und nicht 1.000. ;)

mlspider 25. Nov 2005 16:57

Re: Dateigröße formatieren?
 
Beide Funktionen sind toll. Leider komme ich mit dem Aufruf innerhalb einer Procedur nicht klar, da Int64 und TCaption inkompatibel sind.

Luckie 25. Nov 2005 16:58

Re: Dateigröße formatieren?
 
Du musst den Integer erst in einen String konvertieren mit Delphi-Referenz durchsuchenIntToStr.

mlspider 25. Nov 2005 17:01

Re: Dateigröße formatieren?
 
Hallo Luckie,

das mache ich bereits:

Delphi-Quellcode:
Edit1.Text := (InttoStr(FileSizeToStr(Edit2.Text)));
Der Compiler schluckt das ganze nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Seite 1 von 3  1 23      

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