Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Размер файлов по маске.

Автор: Apache 10.07.2008 19:20

Здравствуйте, кто может мне помочь? Проблема в том, что мне нужно, чтобы программа показывала размер всех файлов маски “.mp3” в одной директории в мегабайтах. Как можно это реализовать?

Автор: volvo 10.07.2008 20: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)...

Автор: Apache 10.07.2008 20:51

Цитата(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 10.07.2008 20:57

Значит, тебе сюда: http://forum.pascal.net.ru/index.php?showtopic=4537

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

Автор: Apache 10.07.2008 21:17

Цитата(volvo @ 10.07.2008 16:57) *

Значит, тебе сюда: http://forum.pascal.net.ru/index.php?showtopic=4537

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

я создал новый .pas файл с тем кодом что ты дал. использувал только Dos

Автор: Apache 11.07.2008 4:05

Все решил проблему, она была в компиляторе wink.gif