IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Размер файлов по маске.
Apache
сообщение 10.07.2008 15:20
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Alex

Репутация: -  0  +


Здравствуйте, кто может мне помочь? Проблема в том, что мне нужно, чтобы программа показывала размер всех файлов маски “.mp3” в одной директории в мегабайтах. Как можно это реализовать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.07.2008 16:35
Сообщение #2


Гость






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 16:51
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Alex

Репутация: -  0  +


Цитата(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 как это можно исправить?

Сообщение отредактировано: Apache - 10.07.2008 17:15
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.07.2008 16:57
Сообщение #4


Гость






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

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

Сообщение отредактировано: volvo - 10.07.2008 17:00
 К началу страницы 
+ Ответить 
Apache
сообщение 10.07.2008 17:17
Сообщение #5





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Alex

Репутация: -  0  +


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

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

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

я создал новый .pas файл с тем кодом что ты дал. использувал только Dos
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Apache
сообщение 11.07.2008 0:05
Сообщение #6





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Alex

Репутация: -  0  +


Все решил проблему, она была в компиляторе wink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2025 3:47
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"