AGB  ·  Datenschutz  ·  Impressum  







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

Byte --> Kb/Mb/Gb

Ein Thema von ByTheTime · begonnen am 8. Aug 2013 · letzter Beitrag vom 9. Aug 2013
Antwort Antwort
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

Byte --> Kb/Mb/Gb

  Alt 8. Aug 2013, 17:22
Hallo,
ich benutze folgende Routine um Byte(s) in eine für den Anwender schönere Darstellung umzuwandeln:

Delphi-Quellcode:
function FormatByteSize(const bytes: Longint): string;
const
  B = 1; // byte
  KB = 1024 * B; // kilobyte
  MB = 1024 * KB; // megabyte
  GB = 1024 * MB; // gigabyte
begin
  if bytes > GB then
    result := FormatFloat('#.## GB', bytes / GB)
  else if bytes > MB then
    result := FormatFloat('#.## MB', bytes / MB)
  else if bytes > KB then
    result := FormatFloat('#.## KB', bytes / KB)
  else
    result := FormatFloat('#.## bytes', bytes);
end;
Ich rechne die Dateigröße mehrerer Dateien zusammen und erhalte "143866884245" Byte. Das sind ~134GB. Allerdings erhalte ich mit der oben aufgeführten Routine 1,99GB.

Ich weiß nich was da schief geht.

Gruß,
Lukas
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.213 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Byte --> Kb/Mb/Gb

  Alt 8. Aug 2013, 17:29
LongInt ist nur 4 Byte groß.
Du brauchst für so große Zahlen Int64.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.191 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Byte --> Kb/Mb/Gb

  Alt 8. Aug 2013, 18:00
Wenn du die '143866884245' manuell einsetzt sieht man eigentlich schon zur Kompilierzeit die entsprechende Warnung
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Byte --> Kb/Mb/Gb

  Alt 8. Aug 2013, 19:54
oder hier http://www.delphipraxis.net/175158-a...ml#post1217345
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#5

AW: Byte --> Kb/Mb/Gb

  Alt 8. Aug 2013, 23:14
Tatsächlich aus LongInt Int64 gemacht und es ging Danke Bernhard
@Günther: Ja, das habe ich jetzt gesehen danke für den Tipp. Hätte ich mal ausprobieren sollen...

Aber jetzt geht ja alles, danke für die Hilfe
Lukas
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.687 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: Byte --> Kb/Mb/Gb

  Alt 9. Aug 2013, 01:51
Am Rande, und auch etwas entgegen meines Sprachempfindens:
Byte*10^(3m) = [X]Byte
Byte*2^(10m) = [xbi]Byte
[m := "Magnitudentripel" (SI-Präfix-Schritt)]

also:
byte*1000 = kiloByte (kB)
byte*1024 = kibiByte (kiB)
byte*1000*1000 = MegaByte (MB)
byte*1024*1024 = MebiByte (MiB)
usw.

So ist es quasi-genormt. Ich finde den Wortklang der x-bis grauselig, und ganz durchgesetzt hat sich das bis Dato auch nicht, aber technisch korrekter wäre es.
Quasi, weil es imho von nahezu allen Standardisierungsorganisationen so anerkannt wird, aber eine formelle Norm gibt es glaube ich nicht.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium ( 9. Aug 2013 um 01:55 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:31 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