Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: CL | DM;

Вниз

Как перевести байты в килобайты и мегобайты   Найти похожие ветки 

 
Opilki_Inside ©   (2006-09-11 13:00) [0]

Всем привет. Знаю что просто... Но может кто-то делал...
Есть размер файла в байтах что-то типа 12348738 нужно привести это к человеческом виду типа 12,3 Мб


 
Сергей М. ©   (2006-09-11 13:03) [1]

Встречный вопрос: есть время в секундах, "что-то типа 5400", нужно привести это к "человеческому" виду "типа 1,5 часа" - твои действия ?


 
Desdechado ©   (2006-09-11 13:10) [2]

делить на 1024 до посинения


 
PSPF2003 ©   (2006-09-11 13:17) [3]

Логическое мышление - полный ноль.


 
Opilki_Inside ©   (2006-09-11 13:32) [4]

Да я прекрасно понимаю как это делается, просто может кто-то уже написал, чего же повторяться-то... Я вообще подозреваю может есть WinAPI функция которая это делает...


 
Плохиш ©   (2006-09-11 13:34) [5]


> просто может кто-то уже написал, чего же повторяться-то

Я плякал....

> Я вообще подозреваю может есть WinAPI функция которая это
> делает

Я рыдал.......


 
PSPF2003 ©   (2006-09-11 13:37) [6]


> Плохиш ©

Сер, ваш платочек :)


 
Ega23 ©   (2006-09-11 13:39) [7]

В одном килобайте - 1024 байт.
Ну и т.д.


 
PSPF2003 ©   (2006-09-11 13:42) [8]


> Ega23 ©

Блин сколько же их в гигабайте?


 
Ketmar ©   (2006-09-11 13:42) [9]

орешек?


 
Ega23 ©   (2006-09-11 13:45) [10]


> Блин сколько же их в гигабайте?


1 гигабайт = 1099511627776 миллибайт  :о)


 
PSPF2003 ©   (2006-09-11 13:47) [11]


> Ega23 ©


А в терабайте? :)


 
SergP.   (2006-09-11 13:48) [12]

> Opilki_Inside ©   (11.09.06 13:00)
> Всем привет. Знаю что просто... Но может кто-то делал...
> Есть размер файла в байтах что-то типа 12348738 нужно привести
> это к человеческом виду типа 12,3 Мб


Если к человеческому виду, то получится 11,8 Мб

а 12,3 Мб - это видимо приведение к ламерскому виду...


 
Рамиль ©   (2006-09-11 13:48) [13]


> Да я прекрасно понимаю как это делается, просто может кто-
> то уже написал, чего же повторяться-то... Я вообще подозреваю
> может есть WinAPI функция которая это делает...

Так и быть, писал исключительно для себя, отрываю от сердца

function ByteToMb(const Value: int64): extended;
begin
 Result := Value / 1048576
end;


 
Opilki_Inside ©   (2006-09-11 14:48) [14]

Мда... злые вы все...
Я имел ввиду функцию на вход которой передаешь количество байтов целого типа а на выходе - строка, она сама подписывает Мб, Кб и т.п... причем нужно учитывать региональные устновки и прочее...


 
Kolan ©   (2006-09-11 14:51) [15]


> количество байтов целого типа


А шо бывают дробного?

По теме:
 Такую ф-цию нетрудно написать, только нужно определится что есть человеческий вид. 1024 Кб - это человеческий? А 1Мб? ...


 
PSPF2003 ©   (2006-09-11 14:53) [16]


> Я имел ввиду функцию на вход которой передаешь количество
> байтов целого типа а на выходе - строка, она сама подписывает
> Мб

А самому написать?


 
Palladin ©   (2006-09-11 14:57) [17]


> А самому написать?


дык а это не крик о помощи, а вопрос ленивого :)


 
JB   (2006-09-11 14:59) [18]


> причем нужно учитывать региональные устновки и прочее

А что где-то 1 Мб=1025 б


 
Palladin ©   (2006-09-11 15:00) [19]

нет, гдето Mb, а где то Мб :)


 
JB   (2006-09-11 15:06) [20]


> нет, гдето Mb, а где то Мб :)

Ну ни фига себе, а если для китайцев прогу писать? :)


 
Opilki_Inside ©   (2006-09-11 15:13) [21]


> Ну ни фига себе, а если для китайцев прогу писать? :)

Для этого и предназначены региональные установки и эти данные нужно из них считывать!
Поэтому я и подумал что навярняка есть 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;


Хотя надо признать с региональными установками она не связана


 
StriderMan ©   (2006-09-11 15:24) [22]

хочешь региональные настройки - юзай IntToStr


 
Opilki_Inside ©   (2006-09-11 15:26) [23]


> хочешь региональные настройки - юзай IntToStr

Это-то причем здесь?


 
Сергей М. ©   (2006-09-11 15:30) [24]


> Opilki_Inside ©   (11.09.06 15:13) [21]


> Если тут еще остались здравомыслящие люди (а не из детского
> сада)


Только не лопни от гордости, если таки причисляешь себя к первым)


 
Наиль ©   (2006-09-11 15:31) [25]


> Это-то причем здесь?

А потому что Запятая.


 
Opilki_Inside ©   (2006-09-11 15:38) [26]


> А потому что Запятая.

По-хорошему запятая... ну про региональные настройки я наверное загнул... Можно конечно и без них, хотя с ними было бы лучше :)


 
SergP.   (2006-09-11 16:13) [27]


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;


 
Barloggg   (2006-09-11 16:14) [28]


> > Блин сколько же их в гигабайте?
>
> 1 гигабайт = 1099511627776 миллибайт  :о)
>

врете батенька.
в 1 гигабайте 1073741824000 миллибайт.


 
SergP.   (2006-09-11 16:16) [29]

> врете батенька.
> в 1 гигабайте 1073741824000 миллибайт.


Хм... Кстати, а интерестно, сколько в 1 байте миллибайт?
1000 или 1024?


 
Наиль ©   (2006-09-11 16:18) [30]


> Хм... Кстати, а интерестно, сколько в 1 байте миллибайт?

8


 
IceBeerg ©   (2006-09-11 16:18) [31]

SergP.   (11.09.06 16:13) [27]
" гегубайт"

ибубайт!


 
mpv   (2006-09-12 14:01) [32]

забыли про коммерческие мегабайты :)


 
Fay ©   (2006-09-12 14:56) [33]

2 mpv   (12.09.06 14:01) [32]
> коммерческие мегабайты
Есть мнение, что 2^20 байт не мегабайте, а в мибибайте (придумали такую байду).


 
IceBeerg ©   (2006-09-12 18:53) [34]

пудобайт и тоннобайт


 
TUser ©   (2006-09-12 21:36) [35]

Переводи в йобибиты :)



Страницы: 1 вся ветка

Текущий архив: 2006.10.01;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.049 c
1-1155918541
msn777
2006-08-18 20:29
2006.10.01
Глюк расстановки мест под точки останова.


2-1157722946
Adios
2006-09-08 17:42
2006.10.01
Не работает функция


15-1157772748
SergP
2006-09-09 07:32
2006.10.01
Почему нет доступа?


1-1155736066
bvn123
2006-08-16 17:47
2006.10.01
Событие/сообщение в DLL, автоматически обрабатываемое в main


2-1157719472
enico
2006-09-08 16:44
2006.10.01
SaveDialog