Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.014 c
1-1155940453
Kos[UFO]
2006-08-19 02:34
2006.10.01
Класс объекта


4-1148734327
oleg_SYS
2006-05-27 16:52
2006.10.01
Как получить список открытых хендлов приложения?


2-1157903717
Blacksus
2006-09-10 19:55
2006.10.01
Как из DLL изменить свойства объекта?


1-1156342131
Sam Stone
2006-08-23 18:08
2006.10.01
CoUnInitialize()


2-1158223978
megasecure
2006-09-14 12:52
2006.10.01
Проблема с ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский