Verfasst: 29.05.2007 15:07
Hallo!
Ganz besonders an NicTheQuick:
Die bisherige Prozedur hat bei einer ANgabe von 0 Byte nicht korrekt gerechnet, denn anscheinend gibt es kein Log(0). Ich habe die Prozedur etwas verbessert...
Schluchz.... Der schöne 2 Zeiler ist dahin...
Ganz besonders an NicTheQuick:
Die bisherige Prozedur hat bei einer ANgabe von 0 Byte nicht korrekt gerechnet, denn anscheinend gibt es kein Log(0). Ich habe die Prozedur etwas verbessert...
Code: Alles auswählen
Procedure.s byterechner(byte.q, NbDecimals.l=0)
Protected unit.l
If byte
unit=Round(Log(byte)/Log(1024), 0)
EndIf
ProcedureReturn StrD(byte/Pow(1024, unit), NbDecimals*(unit And 1))+" "+StringField("Byte,KB,MB,GB,TB,PB,EB", unit+1, ",")
EndProcedure
Debug byterechner(-4096) ; ungültige Angabe wird zu "-1 Byte"
Debug byterechner(0) ; Eine Null-Byte große Datei bleibt auch 0 Byte groß :)
Debug byterechner(27101988) ; Bisherige Angaben bleiben ok
Schluchz.... Der schöne 2 Zeiler ist dahin...
