Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Определение свободного места на диске


Автор: Throne 9.7.2007, 14:54
Для поределения свободного места на диске есть в модуле DOS функция DiskFree(номер_диска). она возвращает значение типа LongInt. Вот тут и возник вопрос: а если у меня места свободного больше, чем два гига, то что?! как тогда определять количство свободного места?!
И еще. Искал-искал так и не нашел. Как определить размер какого-либо файла в байтах с помощью стандартных модулей, кроме как самому пощитать, быренько пробежавшись по файлу? 

Автор: SPrograMMer 9.7.2007, 22:00
Цитата(Throne @  9.7.2007,  14:54 Найти цитируемый пост)
DOS функция DiskFree(номер_диска). она возвращает значение типа LongInt.

во времена доса не было и намека на то что на диске вообще будет места под 2 гига, не говоря уже о свободном месте в таких объемах... перезжай в делфю. smile 


Цитата(Throne @  9.7.2007,  14:54 Найти цитируемый пост)
определить размер какого-либо файла в байтах 

функции FindFirst, FindNext возвращают структуру типа SearchRec... посмотри из чего она состоит smile 

Автор: Throne 9.7.2007, 22:11
да я давно уже хочу на дэлфи перейти... никак мануал не куплю просто.
Окей посмотрю.
Вопрос не по теме: а в win32 прогах вычисления ведь быстрее происходят нежели в DOS (драйвера или еще чего)?

Автор: SPrograMMer 9.7.2007, 22:21
тут все дело в выделаемой ОП для проги. В досе страница одна на 64К и все... крутись как можешь... юзай указатели если не нравитсо... В Win32 гараздо проще с этим... а вот насчет времени выполнения... 
цикл 
Код

for i:=1 to 1000 do
 x=-x;
что в Дос, что в винДос, что в линукс, на одном и том же железе, если нет программного "барьера" выполняется за одно и тоже количество времени. smile 

Автор: Nite 10.7.2007, 10:24
У меня была пара счетных задач, которые я в свое время переносил из доса. Практически ничего не менял, только вставлял в исходник {$APPTYPE CONSOLE}. Одна задача (симплекс-метод из линейного программирования) стала работать раза в полтора быстрее, другая (интеллектуальный перебор с отсечением) - раза в два быстрее. Не знаю, с чем это связано, но факт. В первой задаче широко использовались указатели, так как много обрабатываемых данных, во второй почти не использовались.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)