Fórum Tratar informações de bytes #252211
27/09/2004
0
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
Curtir tópico
+ 0Posts
27/09/2004
Tatuweb
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
27/09/2004
Tatuweb
[b:14318b7922]Result := FormatFloat (´0.#´, Round (tamanho)); [/b:14318b7922]
por
[b:14318b7922]Result := FormatFloat (´0.´, tamanho); [/b:14318b7922]
Gostei + 0
27/09/2004
Redoctober
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
27/09/2004
Tatuweb
var down : String;
Para isso use a função StrToFloat. Ex:
ShowMessage (SizeConvert ([color=#2222FF:5f2bda32a3]StrToFloat (down)[/color:5f2bda32a3]));
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)