Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Перевести из тб/гб/мб в байты


Автор: IDontBelieveInSilence 25.4.2009, 21:59
Можете пожалуйста дать пример перевода мегабайт/гигабайт/терабайт в байты?
У меня подаётся в editbox'e размер, а в комбобоксе выбирается тип размера: мб, гб, тб.
И зная это надо перевести содержимое editbox'a в байты.

Заранее благодарю.

Автор: Лапоть 25.4.2009, 22:06
А что, сколько байт в килобайте, ты не знаешь? smile 

Автор: Keeper89 26.4.2009, 00:53
Лапоть, наверное IDontBelieveInSilence хочет пример перевода.
Прикрепил небольшой пример.

Автор: Лапоть 26.4.2009, 08:25
 smile Я бы добавил вот это:
Код

  try
    Size := StrToFloat(Edit1.Text);
  except
    ShowMessage('Ошибка ввода');
    Exit;
  end;

Автор: Keeper89 26.4.2009, 15:13
Цитата(Лапоть @  26.4.2009,  08:25 Найти цитируемый пост)
Я бы добавил вот это:

Эт верно, но это был простой пример. ;)

Автор: RinOSpro 8.6.2009, 10:40
Keeper89 видимо автор хотел наоборот, из записи: 3,81 МБ перевести в байты 3995997.

IDontBelieveInSilence так?

Но если все таки из байтов в читабельный вид то вот:
Код

function BytesToReadable(ABytes: Int64): string;
const
  LDim: array[0..6] of string = (' bytes', ' КБ', ' МБ', ' ГБ', ' ТБ', ' ПБ', ' ЭБ');
var
  LValue: Double;
  i: Integer;
begin
  LValue := ABytes;
  i := 0;

  while (Trunc(LValue) >= 1024) do
  begin
    Inc(i);
    LValue :=  LValue/1024;
  end;

  Result := FloatToStrF(LValue, ffNumber, 6, IfThen(i = 0, 0, 2)) + LDim[i];
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)