![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перевести байты в килобайты и мегобайты
Opilki_Inside © (2006-09-11 13:00:00)Всем привет. Знаю что просто... Но может кто-то делал...
Есть размер файла в байтах что-то типа 12348738 нужно привести это к человеческом виду типа 12,3 Мб
TUser (2006-09-12 21:36:00) [1]Переводи в йобибиты :)
IceBeerg (2006-09-12 18:53:00) [2]пудобайт и тоннобайт
Fay (2006-09-12 14:56:00) [3]2 mpv (12.09.06 14:01) [32]
> коммерческие мегабайты
Есть мнение, что 2^20 байт не мегабайте, а в мибибайте (придумали такую байду).
mpv (2006-09-12 14:01:00) [4]забыли про коммерческие мегабайты :)
IceBeerg (2006-09-11 16:18:00) [5]SergP. (11.09.06 16:13) [27]
' гегубайт'
ибубайт!
Наиль (2006-09-11 16:18:00) [6]
> Хм... Кстати, а интерестно, сколько в 1 байте миллибайт?
8
SergP. (2006-09-11 16:16:00) [7]> врете батенька.
> в 1 гигабайте 1073741824000 миллибайт.
Хм... Кстати, а интерестно, сколько в 1 байте миллибайт?
1000 или 1024?
Barloggg (2006-09-11 16:14:00) [8]
> > Блин сколько же их в гигабайте?
>
> 1 гигабайт = 1099511627776 миллибайт :о)
>
врете батенька.
в 1 гигабайте 1073741824000 миллибайт.
SergP. (2006-09-11 16:13:00) [9]
function PrivedenieKChelovecheskomuVidu(bytes:currency):string;
const
st:array[0..4] of string=(' байт', ' келабайт', ' мигобайт', ' гегубайт', ' тиробайт');
var
i:integer;
begin
i:=0;
while bytes>1024 do
begin
bytes:=bytes / 1024;
inc(i);
end;
result:=CurrToStrF(bytes,ffFixed,1)+st[i];
end;
Opilki_Inside (2006-09-11 15:38:00) [10]
> А потому что Запятая.
По-хорошему запятая... ну про региональные настройки я наверное загнул... Можно конечно и без них, хотя с ними было бы лучше :)
Наиль (2006-09-11 15:31:00) [11]
> Это-то причем здесь?
А потому что Запятая.
Сергей М. (2006-09-11 15:30:00) [12]
> Opilki_Inside © (11.09.06 15:13) [21]
> Если тут еще остались здравомыслящие люди (а не из детского
> сада)
Только не лопни от гордости, если таки причисляешь себя к первым)
Opilki_Inside (2006-09-11 15:26:00) [13]
> хочешь региональные настройки - юзай IntToStr
Это-то причем здесь?
StriderMan (2006-09-11 15:24:00) [14]хочешь региональные настройки - юзай
IntToStr
Opilki_Inside (2006-09-11 15:13:00) [15]
> Ну ни фига себе, а если для китайцев прогу писать? :)
Для этого и предназначены региональные установки и эти данные нужно из них считывать!
Поэтому я и подумал что навярняка есть API функция на уровне системы...
Если тут еще остались здравомыслящие люди (а не из детского сада), то вот функция о которой я говорил:
function BytesToStr(const i64Size: Int64): string;
const
i64GB = 1024 * 1024 * 1024;
i64MB = 1024 * 1024;
i64KB = 1024;
begin
if i64Size div i64GB > 0 then
Result := Format('%.2f Гб', [i64Size / i64GB])
else if i64Size div i64MB > 0 then
Result := Format('%.2f Мб', [i64Size / i64MB])
else if i64Size div i64KB > 0 then
Result := Format('%.2f Кб', [i64Size / i64KB])
else
Result := IntToStr(i64Size) + ' Байт(а)';
end;
Хотя надо признать с региональными установками она не связана
JB (2006-09-11 15:06:00) [16]
> нет, гдето Mb, а где то Мб :)
Ну ни фига себе, а если для китайцев прогу писать? :)
Palladin (2006-09-11 15:00:00) [17]нет, гдето Mb, а где то Мб :)
JB (2006-09-11 14:59:00) [18]
> причем нужно учитывать региональные устновки и прочее
А что где-то 1 Мб=1025 б
Palladin (2006-09-11 14:57:00) [19]
> А самому написать?
дык а это не крик о помощи, а вопрос ленивого :)
PSPF2003 (2006-09-11 14:53:00) [20]
> Я имел ввиду функцию на вход которой передаешь количество
> байтов целого типа а на выходе - строка, она сама подписывает
> Мб
А самому написать?