Помощь - Поиск - Пользователи - Календарь
Полная версия: Размер файлов по маске.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Apache
Здравствуйте, кто может мне помочь? Проблема в том, что мне нужно, чтобы программа показывала размер всех файлов маски “.mp3” в одной директории в мегабайтах. Как можно это реализовать?
volvo
FindFirst/FindNext в помощь:

uses dos;
function get_size(path, mask: string): longint;
var
sr: searchrec;
size: longint;
begin
size := 0;
findfirst(path + mask, anyfile, sr);
while doserror = 0 do begin
size := size + sr.size;
findnext(sr);
end;
get_size := size;
end;

begin
writeln('start');
writeln(get_size('F:\MyDir\', '*.mp3') / sqr(1024) :6 :2, ' Mb');
end.
(учти, что название папки должно быть в формате 8.3)...
Apache
Цитата(volvo @ 10.07.2008 16:35) *

FindFirst/FindNext в помощь:

uses dos;
function get_size(path, mask: string): longint;
var
sr: searchrec;
size: longint;
begin
size := 0;
findfirst(path + mask, anyfile, sr);
while doserror = 0 do begin
size := size + sr.size;
findnext(sr);
end;
get_size := size;
end;

begin
writeln('start');
writeln(get_size('F:\MyDir\', '*.mp3') / sqr(1024) :6 :2, ' Mb');
end.
(учти, что название папки должно быть в формате 8.3)...

Выскакивает такая ошибка Error 200 Division by zero как это можно исправить?
volvo
Значит, тебе сюда: Error 200. Crt & Delay

(хотя где там у меня может быть деление на ноль, при условии что CRT не подключался, я не знаю, а догадываться, где это произошло - не собираюсь... На моей машине отработало нормально.)
Apache
Цитата(volvo @ 10.07.2008 16:57) *

Значит, тебе сюда: Error 200. Crt & Delay

(хотя где там у меня может быть деление на ноль, при условии что CRT не подключался, я не знаю, а догадываться, где это произошло - не собираюсь... На моей машине отработало нормально.)

я создал новый .pas файл с тем кодом что ты дал. использувал только Dos
Apache
Все решил проблему, она была в компиляторе wink.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.