Форум: "Начинающим";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];
Внизбольшие числа Найти похожие ветки
← →
TRSteep © (2009-10-13 08:12) [0]Есть код который получает размер озу в байтах
в принципе нормально работает, но хочу выводить не в байтах, а нормальном формате (Гб, Мб)
В принципе код написал работает, но есть одно но если ОЗУ больше 4х гб то код не работает (Range Check error).
Немного почитал понял что из-за того что integer не поддерживает такие числа
Изменил integer на int64, real на Extended
В итоге приложение запускается считает, но если объем 4гб ровно - то ответ 0, если больше то считает сколько объем от 4х...
Что делать?function sizetype(volume:integer): string;
var
size: Extended; {real}
i: int64; {integer}
anser: string;
begin
i:=0;
size := volume;
repeat
anser := FloatToStr(size);
i := i + 1;
size := size/1024;
//Showmessage(FloatToStr(size));
until size<1;
case i of
1: Result := anser + " b.";
2: Result := anser + " Kb.";
3: Result := anser + " Mb.";
4: Result := anser + " Gb.";
5: Result := anser + " Tb.";
end;
end;
← →
brother © (2009-10-13 08:33) [1]ну и код(
для начала:
> size := volume;
зачем? и почему тип разный?
> i := i + 1;
inc(i);
> size := size/1024;
size := size div 1024;
ну и код(
← →
brother © (2009-10-13 08:37) [2]http://delphidevelop.ru/publ/13-1-0-261
вообще уже все придумано ;)
← →
palva © (2009-10-13 09:52) [3]Попробуйте volume тоже сделать int64
← →
Плохиш © (2009-10-13 09:55) [4]
> palva © (13.10.09 09:52) [3]
>
> Попробуйте volume тоже сделать int64
Ето шо ж теперя фсю прогу переделывать? 8-O
← →
Anatoly Podgoretsky © (2009-10-13 10:09) [5]Зато теперь кило можно поддерживать вплоть до 10^18
← →
TRSteep © (2009-10-13 11:51) [6]
>
> > size := volume;
>
> зачем? и почему тип разный?
просто не помню можно ли изменять те данные которые вводятся с функцией и тк код для проб, то пока и так пойдет
а тип разный потому, что внутри поменял, а там не углядел, попробую
> > i := i + 1;
>
> inc(i);
i + 1 проще читать, плюс для использования inc нужно подключить еще один модуль, которого нет unit
>
> > size := size/1024;
>
> size := size div 1024;
DIV хм... можно конечно, но так точнее :)
> http://delphidevelop.ru/publ/13-1-0-261
> вообще уже все придумано ;)
Спасибо интересно.
← →
MonoLife © (2009-10-13 11:58) [7]
> плюс для использования inc нужно подключить еще один модуль
system по дефолту и так уже подключен
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c