Transformar una medida informática en string
Artículo por Club Developers · 31 December 2005
5024 vistas
A veces podemos necesitar transformar una medida informática (de fichero, carpeta,....) a una cadena.
Veamos una posible implementación que muestra su medida en la unidad más próxima:
Veamos una posible implementación que muestra su medida en la unidad más próxima:
delphi
function SizeToStr(Sz: int64): string; resourcestring strMinSize = '0 Bytes'; strKo = '%s Kb'; strMo = '%s Mb'; strGo = '%s Gb'; strOct = '%s Bytes'; const cstFloatFmt = '#.##'; cstOneKo = 1024; cstOneMo = cstOneKo * 1024; cstOneGo = cstOneMo * 1024; begin Result := strMinSize; if (Sz = 0) then Exit; if (Sz <= cstOneKo) then begin Result := Format(strOct, [FormatFloat(cstFloatFmt, Sz)]); Exit; end; if (Sz <= cstOneMo) then begin Result := Format(strKo, [FormatFloat(cstFloatFmt, Sz / cstOneKo)]); Exit; end; if (Sz <= cstOneGo) then begin Result := Format(strMo, [FormatFloat(cstFloatFmt, Sz / (cstOneMo))]); Exit; end; Result := Format(strGo, [FormatFloat(cstFloatFmt, Sz / (cstOneGo))]); end;