Tratar informações de bytes
Aí pessoal...
Tenho que transformar um resultado de bytes em KB, MB e assim por diante. Eu achei um script em PHP que faz isso, gostaria da ajuda de você para eu colocar ele no Delphi.
Abraço
Tenho que transformar um resultado de bytes em KB, MB e assim por diante. Eu achei um script em PHP que faz isso, gostaria da ajuda de você para eu colocar ele no Delphi.
$tamanho = ´65465464´;
$sigla = array("bytes","KB","MB","GB","TB","PB");
$indice_sigla = 0;
while ($parar == false)
{
if ($tamanho >= 1024)
{
$tamanho = $tamanho / 1024;
$indice_sigla++;
}
else
{
$parar = true;
}
}
$tamanho = (string) round($tamanho,2);
$tamanho = str_replace(".",",",$tamanho);
$tamanho = $tamanho." ".$sigla[$indice_sigla];
Abraço
Redoctober
Curtidas 0
Respostas
Tatuweb
27/09/2004
A função traduzida para o ObjectPascal
Exemplo de como usar
function SizeConvert (Tamanho: Real): string; const Sigla: array[0..5] of shortstring = (´Bytes´, ´KB´, ´MB´, ´GB´, ´TB´, ´PB´); var indice_sigla: Byte; parar: Boolean; begin indice_sigla := 0; parar := FALSE; while (parar = false) do begin if (tamanho >= 1024) then begin tamanho := tamanho / 1024; Inc (indice_sigla); end else parar := TRUE; end; Result := FormatFloat (´0.´, Round (tamanho)); Result := Result + ´ ´ + sigla[indice_sigla]; end;
Exemplo de como usar
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage (SizeConvert (15784210)); end;
GOSTEI 0
Tatuweb
27/09/2004
Correção: a função Round está redundante. Substitua:
[b:14318b7922]Result := FormatFloat (´0.#´, Round (tamanho)); [/b:14318b7922]
por
[b:14318b7922]Result := FormatFloat (´0.´, tamanho); [/b:14318b7922]
[b:14318b7922]Result := FormatFloat (´0.#´, Round (tamanho)); [/b:14318b7922]
por
[b:14318b7922]Result := FormatFloat (´0.´, tamanho); [/b:14318b7922]
GOSTEI 0
Redoctober
27/09/2004
Correção: a função Round está redundante. Substitua:
[b:2a25f1cf48]Result := FormatFloat (´0.#´, Round (tamanho)); [/b:2a25f1cf48]
por
[b:2a25f1cf48]Result := FormatFloat (´0.´, tamanho); [/b:2a25f1cf48]
Deu certo!
eu tenho uma variavel
var down : String;
Com o valor 79878223, agora eu preciso converter essa variavel para Real para poder imprimir na função que você me passou. Como eu faço para converter String para Real?
GOSTEI 0
Tatuweb
27/09/2004
eu tenho uma variavel
Com o valor 79878223, agora eu preciso converter essa variavel para Real para poder imprimir na função que você me passou. Como eu faço para converter String para Real?
var down : String;
Para isso use a função StrToFloat. Ex:
ShowMessage (SizeConvert ([color=#2222FF:5f2bda32a3]StrToFloat (down)[/color:5f2bda32a3]));
GOSTEI 0