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