Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   FormatFileSize (https://www.delphipraxis.net/197295-formatfilesize.html)

MicMic 27. Jul 2018 15:06

Delphi-Version: 5

FormatFileSize
 
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

DeddyH 27. Jul 2018 15:29

AW: FormatFileSize
 
Für die Stelligkeit kannst Du
Zitat:

Delphi-Quellcode:
Result := Format('%.2f %s', [_size, s]);

in
Delphi-Quellcode:
Result := Format('%f %s', [_size, s]);
ändern. Für das Dezimal- bzw. Tausendertrennzeichen könntest Du einen weiteren Parameter definieren. Dann musst Du aber innerhalb der Funktion entsprechende TFormatSettings deklarieren und diese in der Überladung der Format-Funktion mit übergeben.

[edit] Ich sehe gerade: Delphi 5, stimmt das? Falls ja, klappt das nicht so wie beschrieben, dann müsstest Du die globale Variable Decimalseparator manipulieren, aber bitte vorher Wert sichern und zum Schluss wiederherstellen. [/edit]

MicMic 27. Jul 2018 15:50

AW: FormatFileSize
 
Danke für deine Hilfe aber ".2" wegzulassen, geht nicht. Ich glaub ".2" ist sowieso Standard, wenn man es nicht angibt.

Ich habe die Zeile mit dem Format eben mal so geändert/erweitert:
Code:
 Result := Format('%.2f', [_size]);
 if Result[Length(Result)]='0' then result := Copy(Result,0,Length(Result)-1);
 if Result[Length(Result)]='0' then result := Copy(Result,0,Length(Result)-1);
 if Result[Length(Result)]=',' then result := Copy(Result,0,Length(Result)-1);
 Result := Result + ' '+s;
So komme ich zu meinem Ziel aber ist hier wohl keine gute Lösung. Mit dieser Idee könnt ich auch leicht das Komma in ein anderes Zeichen austauschen.
Nutze Delphi 10 (die neue Community-Version). Das da Delphi 5 steht, ist mir nie aufgefallen. Das hat das Forum wohl als Standard gesetzt, als ich mich hier registriert habe. Ändere ich gleich mal.

Edit: Mit der Version... das war bei der Thread-Erstellung. Da gibt es auch ein Eingabefeld dazu. Dort steht 5 als Standard :)

Michael

MicMic 27. Jul 2018 16:13

AW: FormatFileSize
 
Wer rundet jetzt falsch? Windows oder die Funktion?

Eine Datei mit 1148928 Bytes

1148928 / 1024 / 1024 = 1,0957031

Also eigentlich aufrunden. Das macht die Funktion. Also sie gibt 1,1 MiB zurück.

Windows 10 spuckt aber 1.09 raus (mit der Angabe MB. So wie ich das verstanden habe sollte ja hier dann "MiB" stehen)

Alles mal wieder durcheinander :)

Michael

Uwe Raabe 27. Jul 2018 16:23

AW: FormatFileSize
 
Mit Format geht das wohl nicht, wohl aber mit FormatFloat:

Delphi-Quellcode:
result := Format('%s %s' [FormatFloat('0.##', _size, TFormatSettings.Invariant), s]);

MicMic 27. Jul 2018 17:16

AW: FormatFileSize
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1408893)
Mit Format geht das wohl nicht, wohl aber mit FormatFloat:

Delphi-Quellcode:
result := Format('%s %s' [FormatFloat('0.##', _size, TFormatSettings.Invariant), s]);

Super. Danke. Nach '%s %s' musste ich noch ein Komma einfügen. Nun habe ich versucht den Punkt wieder als Komma zu ändern. Ich will beides nutzen. Ein "0,##" geht hier nicht :) Habe gelesen, dass man bei den TFormatSettings etwas machen muss, sprich dieses "DecimalSeparator" dafür zuständig ist. Dieses "TFormatSettings.Invariant" soll Standard sein. Muss ich dann ein "TFormatSettings.Create" usw. machen? Aber was ist Standard (TFormatSettings.Invariant)? Ist es nicht eine Windows-Einstellung? Wenn ja, dann ist dies wohl nicht sicher, dass der Punkt ausgegeben wird. Irgendwo kann man in Windows ja diese Dinge abändern (auch für ein Datum usw.). Halt ne Benutzereinstellung.

Und Format rundet ja den Wert auf. Wie ich oben geschrieben habe, macht Windows wieder ne andere Rundung. Jeder kocht irgendwie sein eigenes Süppchen, sprich ich brauch wieder 2 Versionen, damit der Benutzer entscheiden kann. Den Befehl "Format" dazu bewegen, abzurunden... das ist bestimmt auch eine "TFormatSettings" Einstellung?

Michael

DieDolly 27. Jul 2018 17:33

AW: FormatFileSize
 
Zitat:

Zitat von MicMic (Beitrag 1408890)
Wer rundet jetzt falsch? Windows oder die Funktion?

Eine Datei mit 1148928 Bytes

1148928 / 1024 / 1024 = 1,0957031

Also eigentlich aufrunden. Das macht die Funktion. Also sie gibt 1,1 MiB zurück.

Windows 10 spuckt aber 1.09 raus (mit der Angabe MB. So wie ich das verstanden habe sollte ja hier dann "MiB" stehen)

Alles mal wieder durcheinander :)

Michael

MiB ist richtig, MB ist falsch.
1148928 Bytes sind ungerundet 1,09 MiB. Gerundet 1,1 MiB.

MicMic 27. Jul 2018 18:10

AW: FormatFileSize
 
Ich hab jetzt:
Code:
fs := TFormatSettings.Create;
fs.DecimalSeparator := '.';
result := Format('%s %s', [FormatFloat('0.##', _size, fs), s]);
.free brauch ich ja hier nicht (verwirrt mich immer). So habe ich den "Punkt" und wenn ich ein Komma haben möchte mach ich dann natürlich "fs.DecimalSeparator := ',';".
Je nach dem wo der Code steht, muss man noch "Application.UpdateFormatSettings := false;" setzen, da sonst bei "WM_WININICHANGE" oder "RM_TaskbarCreated" die FormatSettings wieder überschrieben werden (hier im Forum in einem Thread gelesen). Nur mal so als Info.

Jetzt fragt sich nur noch wie ich dem "Format" beibringen kann, ob er auf/abrunden soll. Es wird ja aufgerundet.

Zitat:

MiB ist richtig, MB ist falsch.
1148928 Bytes sind ungerundet 1,09 MiB. Gerundet 1,1 MiB.
1,0957031 = 1,09 (kann man jetzt als abrunden oder abschneiden sehen). Also sollte man in diesen Fällen (Anzeige von Dateigrößen) dann nicht aufrunden? Also wie Windows es machen?

Michael

P.s. Der Total-Commander gibt beispielsweise "1,0 M" zurück. Jeder macht's anders. Da weiß man gar nicht, welcher Weg der richtige ist.

DieDolly 27. Jul 2018 18:14

AW: FormatFileSize
 
Ich denke am besten ist es, wenn man nicht rundet und nach der, sagen wir mal zweiten Stelle, alles abschneidet.
Ich gucke da gerne auf Linux. Die zeigen MB (nicht MiB) richtig an. Die nehmen das also etwas ernster.

Hier mal ein Beispiel.
https://www.thinkbroadband.com/download
Da kann man Testdateien runterladen. Die 5 MB große Datei sind in Wirklichkeit 5,2 MB.
Was Windows falsch anzeigt, übernehmen also auch Webseitenbetreiber blind.

Daher mein Rat, sich das mal unter Linux anzusehen. Dort wird's richtig gemacht.

Luckie 27. Jul 2018 18:18

AW: FormatFileSize
 
Verwirrt es dich auch nach dem Duschen den Hahn zu zu drehen und die benutze Wäsche in den Wäschekorb zu werfen?

DieDolly 27. Jul 2018 18:24

AW: FormatFileSize
 
Es ist nun einmal Fakt, dass Windows eine falsche Speichergröße anzeigt.
Und nur weil sich jeder blind darauf verlässt, dass Windows es schon richtig macht und somit die Speichermengen MB statt MiB usw übernimmt, gibt es diese Verwirrung.

Ich weiß nicht genau welches Problem du hast. Aber du schreist in den Themen selber rum, dass die Leute die aktuell besprochene Thematik einzuhalten haben, schreibst hier aber selber irgendeinen Käse.

Aber wie oben erwähnt. Windows zeigt es seit Jahren falsch an, und jeder übernimmt es blind ohne darüber nachzudenken.

Uwe Raabe 27. Jul 2018 21:42

AW: FormatFileSize
 
Zitat:

Zitat von MicMic (Beitrag 1408925)
Je nach dem wo der Code steht, muss man noch "Application.UpdateFormatSettings := false;" setzen, da sonst bei "WM_WININICHANGE" oder "RM_TaskbarCreated" die FormatSettings wieder überschrieben werden (hier im Forum in einem Thread gelesen). Nur mal so als Info.

Das hast du aber nur gelesen, nicht probiert, oder? Das gilt nämlich nur für die globale Instanz FormatSettings, aber nicht für deine selbst erzeugte fs.

MicMic 28. Jul 2018 08:53

AW: FormatFileSize
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1408934)
Zitat:

Zitat von MicMic (Beitrag 1408925)
Je nach dem wo der Code steht, muss man noch "Application.UpdateFormatSettings := false;" setzen, da sonst bei "WM_WININICHANGE" oder "RM_TaskbarCreated" die FormatSettings wieder überschrieben werden (hier im Forum in einem Thread gelesen). Nur mal so als Info.

Das hast du aber nur gelesen, nicht probiert, oder? Das gilt nämlich nur für die globale Instanz FormatSettings, aber nicht für deine selbst erzeugte fs.


Ja, nur gelesen :) Dachte es wäre wichtig, deshalb wollt ich das hier dazuschreiben.
Aber Danke für die Info.
Ich habe jetzt folgendes, da man ja nicht aufrunden soll.
Code:
fs := TFormatSettings.Create;
fs.DecimalSeparator := ',';
_size := 23.203;
result := floattostr(_size);
kp := Pos(',',result);
if kp > 0 then result := copy(result,0,kp+2);
if result[length(result)]='0' then result := copy(result,0,length(result)-1);
result := result + ' '+s;
Ich schneide jetzt einfach ab auf 2 Stellen nach dem Komma und sollte dann zufällig noch eine "0" am Ende sein (beim ersten Copy z.B. aus 232,20343 = 232,20) wird diese "0" dann auch mit dem zweiten Copy entfernt. Beim ersten Copy "kp+2" gibt's keine Probleme wenn der Wert z.B. "232,2" beträgt. Da nimmt er wohl nur +1 weil es mehr nicht gibt. Am Ende füge ich dann noch die Bezeichnung ein "KB, KiB etc."

Edit:
Muss doch den 3 Zeiler nehmem, sprich 2x auf 0 prüfen. Der Wert kann ja z.B. auch "232,0034383" sein
Also doch so:
Code:
if Result[Length(Result)]='0' then result := Copy(Result,0,Length(Result)-1);
if Result[Length(Result)]='0' then result := Copy(Result,0,Length(Result)-1);
if Result[Length(Result)]=',' then result := Copy(Result,0,Length(Result)-1);
Michael

Schokohase 28. Jul 2018 09:13

AW: FormatFileSize
 
Da dieses Thema ja stark von der Oberlehrerfraktion besetzt ist:

Wenn man einen Wert rundet, dann werden nach Selbigem niemals die Nachkommastellen entfernt.
Code:
232,0034383 auf 2 Nachkommastellen gerundet: 232,00
Du kannst dir also diesen Zirkus sparen.

MicMic 28. Jul 2018 09:13

AW: FormatFileSize
 
Da der Wert auch 0 sein kann... Update:
Ohne "if Result <> '0' Then" würde es nämlich dann bei den Wert "0" ein Fehler verursachen.
Code:
fs := TFormatSettings.Create;
fs.DecimalSeparator := ',';
result := floattostr(_size);
kp := Pos(',',result);
if kp > 0 then result := copy(result,0,kp+2);
if Result <> '0' Then
Begin
  if Result[Length(Result)]='0' then result := Copy(Result,0,Length(Result)-1);
  if Result[Length(Result)]='0' then result := Copy(Result,0,Length(Result)-1);
  if Result[Length(Result)]=',' then result := Copy(Result,0,Length(Result)-1);
End;
result := result + ' '+s;
Michael

MicMic 28. Jul 2018 09:19

AW: FormatFileSize
 
Zitat:

Zitat von Schokohase (Beitrag 1408942)
Da dieses Thema ja stark von der Oberlehrerfraktion besetzt ist:

Wenn man einen Wert rundet, dann werden nach Selbigem niemals die Nachkommastellen entfernt.
Code:
232,0034383 auf 2 Nachkommastellen gerundet: 232,00
Du kannst dir also diesen Zirkus sparen.

Das Thema (bei mir *g) ist ja, da ich nicht weis wie ich mit Format/FormatFloat abrunden kann. Da wird ja aufgerundet und wie ich das jetzt verstanden habe, soll man bei einer Anzeige von Dateigrößen nicht aufrunden. Windows rundet ab, bei dem einem Beispielwert (weiter oben) 1,09. Format/FormatFloat macht 1,1 und der bekannte TotalCommander macht ne "1" (mit der Bezeichnung "M") raus. Ich mach den Zirkus ja nicht :) Wir alle :)

Michael

KodeZwerg 28. Jul 2018 10:54

AW: FormatFileSize
 
Zitat:

Zitat von MicMic (Beitrag 1408944)
da ich nicht weis wie ich abrunden kann

Na da kann Dir geholfen werden, mitSetRoundMode() ist so ein Verhalten steuerbar.

Uwe Raabe 28. Jul 2018 11:13

AW: FormatFileSize
 
Zitat:

Zitat von KodeZwerg (Beitrag 1408948)
Na da kann Dir geholfen werden, mitSetRoundMode() ist so ein Verhalten steuerbar.

Kannst du mal den Code zeigen, mit dem das funktioniert?

Ich würde das explizit ausprogrammieren:

Delphi-Quellcode:
 
  if <mit Punkt> then begin
    // sprachinvariant, immer mit Punkt
    fs := TFormatSettings.Invariant;
  end
  else begin
    // mit Komma oder was im Windows halt gerade eingestellt ist
    fs := FormatSettings;
  end;
  result := Format('%s %s', [FormatFloat('0.##', Floor(100*_size)/100, fs), s]);

KodeZwerg 28. Jul 2018 11:22

AW: FormatFileSize
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1408949)
Kannst du mal den Code zeigen, mit dem das funktioniert?

Ausführlicher Beispiel Code ist doch im Link? Vielleicht habe ich das was gefordert ist auch falsch Verstanden, wobei es bei auf/ab-runden nicht viel falsch zu verstehen gibt. Du meinst bestimmt seinen Code, ich meinte generell auf/abrunden.

MicMic 28. Jul 2018 11:36

AW: FormatFileSize
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1408949)
Zitat:

Zitat von KodeZwerg (Beitrag 1408948)
Na da kann Dir geholfen werden, mitSetRoundMode() ist so ein Verhalten steuerbar.

Kannst du mal den Code zeigen, mit dem das funktioniert?

Ich würde das explizit ausprogrammieren:

Delphi-Quellcode:
 
  if <mit Punkt> then begin
    // sprachinvariant, immer mit Punkt
    fs := TFormatSettings.Invariant;
  end
  else begin
    // mit Komma oder was im Windows halt gerade eingestellt ist
    fs := FormatSettings;
  end;
  result := Format('%s %s', [FormatFloat('0.##', Floor(100*_size)/100, fs), s]);

Jo, ist natürlich besser als mein Pos/Copy Zeugs :) Ich kenne natürlich Floor, wusste aber nicht wie ich es dort in der Zeile einsetze. Das nehme ich jetzt. Danke
Aber wegen diesen FormatSettings…

Wenn ich immer:
Code:
fs := TFormatSettings.Create;
fs.DecimalSeparator := ','; // oder '.' oder '/' (wie ich halt will)
nehme, bin ich auf der sicheren Seite mit meinem Komma oder Punkt. Oder?

Michael

Uwe Raabe 28. Jul 2018 11:42

AW: FormatFileSize
 
Ich meine sowas:
Delphi-Quellcode:
var
  _size: Extended;
  orgMode: TRoundingMode;
begin
  _size := 1.0957031;
  orgMode := SetRoundMode(rmDown);
  try
    Assert(FormatFloat('0.##', _size, TFormatSettings.Invariant) = '1.09', 'Abrunden klappt nicht!');
  finally
    SetRoundMode(orgMode);
  end;
end;
Basierend auf dieser Aussage:
Zitat:

Zitat von MicMic (Beitrag 1408944)
da ich nicht weis wie ich mit Format/FormatFloat abrunden kann.

und dieser:
Zitat:

Zitat von KodeZwerg (Beitrag 1408948)
Na da kann Dir geholfen werden, mitSetRoundMode() ist so ein Verhalten steuerbar.


KodeZwerg 28. Jul 2018 12:32

AW: FormatFileSize
 
Da ich mich gleich an Strand klatsche hab ich keine Zeit mehr, aber mein Vorschlag beinhaltet Beispiel Code, wenn man nichts rundet, rundet man nichts. Also wo kommt Round() vor?

Falls ich darauf noch Lust haben sollte, schreibe ich was mit Delphi basierend aus dem Informationen vom Link und nicht basierend auf irgendwas was nicht Round() enthält. Man kann Round() auch in Format() reinbringen...

MicMic 28. Jul 2018 12:55

AW: FormatFileSize
 
Also SetRoundMode behalte ich mal im Hinterkopf. Danke für die Info.
Find jetzt die Zeile "result := Format('%s %s', [FormatFloat('0.##', Floor(100*_size)/100, fs), s]);" passt ganz gut.

KodeZwerg und Uwe Raabe... ich hoffe ihr streitet nicht rum :)

Aber Windows macht wirklich sein eigenes Ding. Abgesehen von der Bezeichnung der Dateigrößen...

308736 Bytes / 1024 = 301,5 (Windows gibt 301 aus) <- Datei System32\wusa.exe
14848 Bytes / 1024 = 14,5 (Windows gibt 14,5 aus) <- Datei System32\wshirda.dll

Mal mit ",5" mal ohne. (im Explorer Ansicht Modus "Liste" oder bei den Datei-Eigenschaften)
Im Modus "Details" (dort ist alles ohne Nachkommastellen) die wusa.exe mit 302 wobei in der Statusleiste dann gleichzeitig 301 steht

Ich gebe jetzt z.B. bei der wusa.exe 301,5 KiB aus.

Schon komisch

Michael

Uwe Raabe 28. Jul 2018 13:47

AW: FormatFileSize
 
Zitat:

Zitat von MicMic (Beitrag 1408954)
KodeZwerg und Uwe Raabe... ich hoffe ihr streitet nicht rum :)

Würde uns doch nicht im Traum einfallen 8-)

KodeZwerg 28. Jul 2018 20:11

AW: FormatFileSize
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1408955)
Zitat:

Zitat von MicMic (Beitrag 1408954)
KodeZwerg und Uwe Raabe... ich hoffe ihr streitet nicht rum :)

Würde uns doch nicht im Traum einfallen 8-)

Seh ich genauso, da Uwe der weit aus Erfahrene Delphi Pro User ist war ich mir Anfangs auch nicht sicher das zu Schreiben. Falls es grob Klang lag es schlicht daran das ich ausser Haus musste und Round() über Format() nicht testen konnte, aber es erscheint mir logisch das ein "SetRoundMode()" kein "SetFormatIrgendWas()" replacement ist. Vielleicht ist es falsch was ich so von mir gebe. Jedenfalls tuts mir leid wenn es falsch rüberkam.

Hab Euch alle lieb.:thumb:

Schokohase 28. Jul 2018 23:35

AW: FormatFileSize
 
Windows 10 zeigt im Explorer als Größe den Wert 302 KB und bei den Eigenschaften 301 KB (308 736 Bytes) an.

Konsistent ist da also anders.

Im Explorer erfolgt die Berechnung mit dem Kaufmännischen Runden und in den Eigenschaften evtl. mit dem Symetrischen Runden.

MicMic 29. Jul 2018 08:50

AW: FormatFileSize
 
Zitat:

Zitat von Schokohase (Beitrag 1408971)
Windows 10 zeigt im Explorer als Größe den Wert 302 KB und bei den Eigenschaften 301 KB (308 736 Bytes) an.

Konsistent ist da also anders.

Im Explorer erfolgt die Berechnung mit dem Kaufmännischen Runden und in den Eigenschaften evtl. mit dem Symetrischen Runden.

Also bei mir rundet Windows ja nach Lust und Laune.
Ich schrieb ja oben wusa.exe und wshirda.dll (mal mit ,5 mal ohne) im selben Ansichtmodus.

(Fette Schrift = Ansicht von Windows in den Eigenschaften)

wshirda.dll: Größe = 14848 / 1024 = 14,5 (14,5) Diff. 0
wusa.exe: Größe = 308736 / 1024 = 301,5 (301) Diff. 0,5

Also Windows10 rundet (bei der gleichen Ansicht) bei der wshirda.dll nicht, bei der wusa.exe aber schon. Total Sinnfrei. Aber ich mache mir jetzt da kein Kopf mehr mit diesem Programm aus der Garage (*lach). Ich gebe bei beiden Dateien ",5" mit aus.

Michael

himitsu 29. Jul 2018 11:58

AW: FormatFileSize
 
Zitat:

Zitat von MicMic (Beitrag 1408977)
Also Windows10 rundet (bei der gleichen Ansicht) ....

Schonmal was von Bankers Rounding gehört? :roll: Nee, da hätte die letzte Zahl gerade sein müssen, also auch 302. :gruebel:

Und hier rundet er eben nicht auf x Nachkommastellen, sondern auf 3 "sichtbare" Dezimalstellen.

MicMic 29. Jul 2018 13:44

AW: FormatFileSize
 
Zitat:

Zitat von himitsu (Beitrag 1408992)
Zitat:

Zitat von MicMic (Beitrag 1408977)
Also Windows10 rundet (bei der gleichen Ansicht) ....

Schonmal was von Bankers Rounding gehört? :roll: Nee, da hätte die letzte Zahl gerade sein müssen, also auch 302. :gruebel:

Und hier rundet er eben nicht auf x Nachkommastellen, sondern auf 3 "sichtbare" Dezimalstellen.

Ja, 3 Zahlen... das fällt jetzt auf wenn man darauf schaut. Windows zeigt dann auch "1,00 MB" an.
Nur bei den Bytes sind es mal weniger als 3 Zahlen. Naja, 92 Bytes als 92,0 Bytes anzuzeigen wäre dann etwas peinlich :)
Aber vielleicht finde ich ja noch eine 3,25 Bytes Datei *lach

Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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 by Thomas Breitkreuz