AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FormatFileSize

Ein Thema von MicMic · begonnen am 27. Jul 2018 · letzter Beitrag vom 29. Jul 2018
 
MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

FormatFileSize

  Alt 27. Jul 2018, 14:06
Delphi-Version: 5
Hallo, habe hier (Beitrag finde ich irgendwie nicht mehr) diese Funktion entdeckt.
Code:
function FormatFileSize(const AFileSize: Int64; Use1024: Boolean = True): String;
const
  Sizes1024: array[0..8] of string = ('Bytes', 'KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB');
  Sizes1000: array[0..8] of string = ('Bytes', 'KB','MB','GB','TB','PB','EB','ZB','YB');
var
  _size: Extended;
  _Unit: integer;
  s: string;
  Divisor: Integer;
begin
  try
    if (Use1024) then
      Divisor := 1024
    else
      Divisor := 1000;

    _size := AFileSize;
    _Unit := Low(Sizes1024);

    while (_size >= Divisor) and (_Unit < High(Sizes1024)) do
    begin
      _size := _size / Divisor;
      Inc(_Unit);
    end;
    if (Use1024) then
      s := Sizes1024[_Unit]
    else
      s := Sizes1000[_Unit];
    Result := Format('%.2f %s', [_size, s]);
  except
    Result := 'ERR';
  end;
end;
Die wollte ich gerne nutzen, habe aber auch irgendwo gelesen, dass man "Extended" gar nicht nehmen sollte, sondern "Int64". Ob das nun allg. gemeint war oder speziell... kein Plan. Wollte es nur mal erwähnen, da hier in der Funktion ja "Extended" genommen wird. Die Funktion geht jedenfalls aber wollte hier noch eine kleine Änderung vornehmen, nämlich das nach dem Komma keine Nullen angezeigt werden.

Beispiele:

1,59 = 1,59
1,50 = 1,5
1,02 = 1,02
1,00 = 1

Auch würde ich gerne das Komma durch ein anderes Zeichen ersetzen können (z.B. ein Punkt). Beides kann man natürlich außerhalb der Funktion im nachhinein noch machen aber das wäre wohl nicht die beste Lösung. Auch würde ich gerne mal wissen, wer Dateien hat, die so ab TerraByte anfangen. Alles war danach kommt, kann ich mir dann gar nicht mehr vorstellen... also als einzelne Datei Vielleicht die NASA mit Daten in ner ZIP-Datei von 422 Exabyte? *lach

Michael
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 Uhr.
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