В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
Автоматический перевод единиц измерения числа, выраженные в байтах, в кило-, мега-, гигабайты
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 – формат единицы измерения, значения которых даны ниже: