Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 a 10 de 12

Tópico: Duvida - Como Converter de Byte para MB, KB, GB

  1. #1
    Newbie
    Data de Ingresso
    Oct 2008
    Posts
    67
    Post Thanks / Like

    Duvida - Como Converter de Byte para MB, KB, GB

    Galera to com um problema com isso, tenho um programa q faz administracao de alguns arquivos, ele pega o tamanho dos arquivos e me retorna em bytes, porem gostaria de saber se alguem aí tem alguma funcao q faria retornar em MB, KB, GB dependendo do tamanho do arquivo, nem precisa pegar o tamanho do arquivo a funcao, apenas converter um nº para KB, MB, GB alguem tem algo assim?

    Obrigado.

  2. #2
    Wannabe
    Data de Ingresso
    Dec 2008
    Posts
    453
    Post Thanks / Like

    Re: Duvida - Como Converter de Byte para MB, KB, GB

    Converter de um para o outro é só dividir por 1024 :?

    Código:
    function bToKb(i: longint): real;
    begin
    Result:=i/1024;
    end;
    
    function KbToMb(i: real): real;
    begin
    Result:=i/1024;
    end;
    
    function MbToGb(i:real): real;
    begin
    Result:=i/1024;
    end;

  3. #3
    Newbie
    Data de Ingresso
    Oct 2008
    Posts
    67
    Post Thanks / Like

    Re: Duvida - Como Converter de Byte para MB, KB, GB

    como uso essa funcao em por exemplo :
    ponho um numero em um edit, e ao clicar em botao, o caption do label muda de acordo com a funcao, como usaria essa funcao? vlw

  4. #4
    Wannabe
    Data de Ingresso
    Nov 2008
    Posts
    450
    Post Thanks / Like

    Re: Duvida - Como Converter de Byte para MB, KB, GB

    Citação Postado originalmente por pedrosfh
    como uso essa funcao em por exemplo :
    ponho um numero em um edit, e ao clicar em botao, o caption do label muda de acordo com a funcao, como usaria essa funcao? vlw
    Mais do que isso é mastigado demais cara
    Se voce vai converter de MB pra GB ficaria

    Label1.Caption:=IntToStr(MbToGb(Edit1.Text));
    http://img6.imageshack.us/img6/7370/rmrf.gif
    o comando no gif foi escrito errado propositalmente para evitar que pessoas curiosas testem-o no seu sistema super seguro.

  5. #5
    Newbie
    Data de Ingresso
    Oct 2008
    Posts
    67
    Post Thanks / Like

    Re: Duvida - Como Converter de Byte para MB, KB, GB

    Citação Postado originalmente por _dmK_
    Citação Postado originalmente por pedrosfh
    como uso essa funcao em por exemplo :
    ponho um numero em um edit, e ao clicar em botao, o caption do label muda de acordo com a funcao, como usaria essa funcao? vlw
    Mais do que isso é mastigado demais cara
    Se voce vai converter de MB pra GB ficaria

    Label1.Caption:=IntToStr(MbToGb(Edit1.Text));
    E voce nao acha q ja tinha tentado dessa forma? tentei de diversas formas e nenhuma ate agora deu certa, alguem sabr uma forma de usar isso? obrigado

  6. #6
    Wannabe
    Data de Ingresso
    Nov 2008
    Posts
    450
    Post Thanks / Like

    Re: Duvida - Como Converter de Byte para MB, KB, GB

    Citação Postado originalmente por pedrosfh
    Citação Postado originalmente por _dmK_
    Citação Postado originalmente por pedrosfh
    como uso essa funcao em por exemplo :
    ponho um numero em um edit, e ao clicar em botao, o caption do label muda de acordo com a funcao, como usaria essa funcao? vlw
    Mais do que isso é mastigado demais cara
    Se voce vai converter de MB pra GB ficaria

    Label1.Caption:=IntToStr(MbToGb(Edit1.Text));
    E voce nao acha q ja tinha tentado dessa forma? tentei de diversas formas e nenhuma ate agora deu certa, alguem sabr uma forma de usar isso? obrigado
    Se você não fala que tentou não tenho bola de cristal para advinhar
    Tenta assim
    Código:
    var
    a,b : Double;
    begin
    a:=StrToFloat(Edit1.Text);
    b:=MbToGb(a);
    Label1.Caption := FloatToStr(b);
    end;
    http://img6.imageshack.us/img6/7370/rmrf.gif
    o comando no gif foi escrito errado propositalmente para evitar que pessoas curiosas testem-o no seu sistema super seguro.

  7. #7
    Newbie
    Data de Ingresso
    Oct 2008
    Posts
    67
    Post Thanks / Like

    Re: Duvida - Como Converter de Byte para MB, KB, GB

    vlw cara, só queria saber mais uma coisa, nao tem como arredondar esses valores nao? q nem o Windows faz, ele nunca poe por exemplo 0,89836 bytes, ele arredonda para por exemplo 0,89

    teria como fazer isso? Obrigado

  8. #8
    Wannabe
    Data de Ingresso
    Dec 2008
    Posts
    453
    Post Thanks / Like

    Re: Duvida - Como Converter de Byte para MB, KB, GB

    Citação Postado originalmente por pedrosfh
    vlw cara, só queria saber mais uma coisa, nao tem como arredondar esses valores nao? q nem o Windows faz, ele nunca poe por exemplo 0,89836 bytes, ele arredonda para por exemplo 0,89

    teria como fazer isso? Obrigado
    Use o método Format:
    Código:
    f:real;
    begin
    f:=1/3;
    showmessage(format(%0.3f,[f]));
    Se quizesse com 4 casas decimais --> %0.4;
    5 casa decimais --> %0.5;

    E o "f" entre colchetes é a variável que vai ser formatada...

    Sugiro que leia : http://www.delphibasics.co.uk/RTL.asp?Name=Format

    Format é um método muito útil...

  9. #9
    Wannabe
    Data de Ingresso
    Nov 2008
    Posts
    450
    Post Thanks / Like

    Re: Duvida - Como Converter de Byte para MB, KB, GB

    Acho que é isso que você quer
    Código:
    function TruncFix( X : Double ) : Integer;
    begin
      Result := Trunc( SimpleRoundTo( X, -9) );
    end
    http://img6.imageshack.us/img6/7370/rmrf.gif
    o comando no gif foi escrito errado propositalmente para evitar que pessoas curiosas testem-o no seu sistema super seguro.

  10. #10
    Newbie
    Data de Ingresso
    Oct 2008
    Posts
    67
    Post Thanks / Like

    Re: Duvida - Como Converter de Byte para MB, KB, GB

    Alguem sabe como usar essa funcao aqui, faz a mesma coisa, porem com muita mais precisao, só q nao to conseguindo usar ela :

    /Format file byte size
    function FormatByteSize(const bytes: Longint): string;
    const
    B = 1; //byte
    KB = 1024 * B; //kilobyte
    MB = 1024 * KB; //megabyte
    GB = 1024 * MB; //gigabyte
    begin
    if bytes > GB then
    result := FormatFloat('#.## GB', bytes / GB)
    else
    if bytes > MB then
    result := FormatFloat('#.## MB', bytes / MB)
    else
    if bytes > KB then
    result := FormatFloat('#.## KB', bytes / KB)
    else
    result := FormatFloat('#.## bytes', bytes) ;
    end;
    Se alguem souber posta ae plz, obrigado

Tópicos Similares

  1. [duvida]Converter .swf para .pdf e imprimir
    Por Int3rc3pt0r no fórum Office em Geral
    Respostas: 7
    Último Post: 12 Nov 2010, 11:22
  2. Respostas: 1
    Último Post: 26 Apr 2009, 20:07

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •