Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

xaromz 25. Nov 2005 17:05

Re: Dateigröße formatieren?
 
Hallo,

da fehlt ein Delphi-Referenz durchsuchenStrToInt:
schreib mal
Delphi-Quellcode:
Edit1.Text := FileSizeToStr(StrToInt(Edit2.Text));
Gruß
xaromz
//Edit: Fehler verbessert.

BenjaminH 25. Nov 2005 17:06

Re: Dateigröße formatieren?
 
Delphi-Quellcode:
Edit1.Text := (InttoStr(FileSizeToStr(Edit2.Text)));
So passts:
Delphi-Quellcode:
Edit1.Text := FileSizeToStr(StrtoInt(Edit2.Text));

igel457 25. Nov 2005 17:06

Re: Dateigröße formatieren?
 
@lucky :gruebel: :stupid:

Meine Funktion einfach so aufraufen:
Delphi-Quellcode:
label1.caption := filesizetostr(size);
Size ist ein integer. Edit2.Text ein String.
Mach es doch einfach so:
Delphi-Quellcode:
label1.caption := filesizetostr(strtoint(edit2.text));
Noch ein Tipp um die Große abzufragen. Du nimmst da eine recht "altmodische" Methode.

So ist es hoffentlich besser:
Delphi-Quellcode:
function CheckFileSize(aFilename: string): int64;
var
  fs:TFilestream;
begin
  fs := TFileStream.Create(afilename,fmOpenRead   )
  Result := fs.size;
  fs.free;
end;

Luckie 25. Nov 2005 17:06

Re: Dateigröße formatieren?
 
Das ist doch schon ein String: FileSizeToStr!

mlspider 25. Nov 2005 17:08

Re: Dateigröße formatieren?
 
Ja, jetzt passt es. Danke an alle.

Khabarakh 25. Nov 2005 17:35

Re: Dateigröße formatieren?
 
Zitat:

Zitat von igel457
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 &lt; 1024*1024) then result := formatfloat('0.00',size/1024)+'KB';
  if (size &gt; 1024*1024) and (size &lt; 1024*1024*1024) then
   result := formatfloat('0.00',size/1024/1024)+'MB';
  if (size &gt; 1024*1024*1024) then
   result := formatfloat('0.00',size/1024/1024/1024)+'GB';
end;
Hoffe das hilft...

Viel zu lang :mrgreen: .
Delphi-Quellcode:
function FileSizeToStr(const ASize: Int64): string;
const
  Units: Array[0..8] of string = ('Byte', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
                                                                              // Ab hier wird es unwahrscheinlich ^^
var
  Index: Integer;
begin
  Assert(ASize >= 0);
  Index := Trunc(ln(ASize) / ln(2) / 10);
  Result := Format('%.2f %s', [ASize / (1 shl (Index * 10)), Units[Index]]);
end;
*scnr*

himitsu 25. Nov 2005 17:48

Re: Dateigröße formatieren?
 
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
...
Da ist eh ein Fehler drin ... ihr solltet mal darauf achten, was passiert, wenn size 1024 ist :zwinker:

Neutral General 25. Nov 2005 17:52

Re: Dateigröße formatieren?
 
Delphi-Quellcode:
function FileSizeToStr(const ASize: Int64): string;
const
  Units: Array[0..8] of string = ('Byte', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
                                                                              // Ab hier wird es unwahrscheinlich ^^
var
  Index: Integer;
begin
  Assert(ASize >= 0);
  Index := Trunc(ln(ASize) / ln(2) / 10);
  Result := Format('%.2f %s', [ASize / (1 shl (Index * 10)), Units[Index]]);
end;
OT: Was ist denn EB, ZB und YB ? :mrgreen:
Ich kenne nur bis PetaByte :mrgreen:

Sharky 25. Nov 2005 17:56

Re: Dateigröße formatieren?
 
Zitat:

Zitat von Neutral General
... OT: Was ist denn EB, ZB und YB ?...

Ein Klick zu WiKi verrät es ;-)

mlspider 25. Nov 2005 18:02

Re: Dateigröße formatieren?
 
Immer wieder nützlich!:mrgreen:


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

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