Неверов Евгений Викторович
QR-код
Меню сайта
Категории раздела
Программирование на языке Паскаль [25]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
Программирование на Delphi [19]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
Программирование на HTML [1]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
Мои программы [1]
Описание разработанных автором программ.
Online-программы [2]
Прочее [42]
Свободная тематика
Мини-чат
200
Наш опрос
Существуют ли инопланетяне?
Всего ответов: 11
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Автоматический перевод единиц измерения числа, выраженные в байтах, в кило-, мега-, гигабайты
function ByteAutoToKMGb(bytes: int64; count, measurement: byte): string;
var l: byte;
    r: extended;
    s: string;

   function Meas(n: byte): string;
   const arr: array[0..4, 1..4] of string = (('б', 'бит', 'Б', 'байт'),
            ('Кб', 'Кбит', 'КБ', 'Кбайт'), ('Мб', 'Мбит', 'МБ', 'Мбайт'),
            ('Гб', 'Гбит', 'ГБ', 'Гбайт'), ('Тб', 'Тбит', 'ТБ', 'Тбайт'));
   begin
      Result:='';
      if (n<=4) and (measurement>=1) and (measurement<=4) then
         Result:=arr[n, measurement];
   end;

begin
   r:=bytes;
   s:=Meas(0);
   if bytes>=1E3 then
   begin
      r:=bytes/1024;
      s:=Meas(1);
   end;
   if bytes>=1E6 then
   begin
      r:=bytes/1024/1024;
      s:=Meas(2);
   end;
   if bytes>=1E9 then
   begin
      r:=bytes/1024/1024/1024;
      s:=Meas(3);
   end;
   if bytes>=1E12 then
   begin
      r:=bytes/1024/1024/1024/1024;
      s:=Meas(4);
   end;
   if bytes<1000 then
      count:=0;
   l:=Length(IntToStr(Trunc(r)));
   if l>=count then
      count:=l+1;
   Result:=Format('%*.*f', [l, count-l-1, r]);
   if s<>'' then
      Result:=Result+' '+s;
end;

где:

  • bytes – исходное число;
  • count – минимальное количество символов, выводимых в строке (запятая включается в количество символов записи десятичного числа!);
  • measurement – формат единицы измерения, значения которых даны ниже:
    • 0 – без единиц измерения,
    • 1 – биты сокращенно (б, Кб, Мб, Гб),
    • 2 – биты полностью (бит, Кбит, Мбит, Гбит),
    • 3 – байты сокращенно (Б, КБ, МБ, ГБ),
    • 4 – байты полностью (байт, Кбайт, Мбайт, Гбайт).

Например,

  • ByteAutoToKMGb(7, 4, 1) выведет '7 б';
  • ByteAutoToKMGb(58423695412, 5, 4) выведет '54,41 Гбайт';
  • ByteAutoToKMGb(24395413407628408, 7, 3) выведет '22187,5 ТБ'.
Категория: Программирование на языке Паскаль | Добавил: newerow1989 (12.03.2016)
Просмотров: 924 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *:
Вход на сайт
Поиск
Друзья сайта
Заработок в Интернете
Для начала необходим Электронный PAYEER® кошелек!
Copyright MyCorp © 2025
Версия для мобильных устройств. Яндекс.Метрика Анализ сайта Проверить мой сайт на ScamAdviser.com