moin moin,
Warum if und case verwenden, wenn es auch iterativ zu lösen ginge?
Nur der Rundung halber?
Delphi-Quellcode:
function FileSizeToString(const FileSize: Int64): String;
const Measure: Array[0..4] of String = ('Byte', 'KB', 'MB', 'GB', 'TB');
var NewSize: Currency;
var i: Integer;
begin
Result := '';
if FileSize > -1 then
begin
i := 0;
NewSize := FileSize;
while (NewSize >= 1024) do
begin
NewSize := NewSize / 1024;
Inc(i);
end;
case i of
0: Result := FloatToStr( NewSize );
1,
2,
3: Result := FormatFloat('0.00', NewSize);
4: Result := FormatFloat('0.000', NewSize);
else Result := FloatToStr( NewSize );
end;
Result := Result + #32 + Measure[i];
end;
end;
PS: TimeTest hab ich mir angesehen, werd ich wie gesagt nochmal fixen.
Und @alle die ihre Farben ändern, aber sich wundern, warum im Report andere Farben auftauchen, is so,
nich wundern ;>.