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

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

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

> Работа с каталогами и файлами., Составить гистограмму
Катя
сообщение 25.11.2005 21:07
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Женский

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


Помогите с написанием программы,а то в понедельник сдавать надо плиз.

Программа начинает работу в заданном каталоге и спускается по дереву каталогов,записывая по пути размеры всех встретившихся ей файлов.Закончив сканирование каталога,программа должна распечатать гистограмму размеров файлов,используя шаг гистограммы в качестве параметра(например, при шаге 1024,файлы размером от 0 до 1023 байт попадают в один интервал,от 1024 до 2047 байт в другой и т.д.)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
volvo
сообщение 25.11.2005 22:28
Сообщение #2


Гость






Уже было где-то ... Но в общем случае - FindFirst/FindNext, проверяешь очередное имя файла на атрибут "каталог", и если этот атрибут установлен - запускаешь Ее Величество Рекурсию wink.gif
 К началу страницы 
+ Ответить 
volvo
сообщение 25.11.2005 22:38
Сообщение #3


Гость






Вот... нашел, где это было:
FAQ: Файлы -> Поиск файла по директориям

Чуть-чуть подправить...
 К началу страницы 
+ Ответить 
Катя
сообщение 27.11.2005 18:15
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Женский

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


Как сделать так что бы файлы выводились поблочно(по размерам) от 0-1023, 1023-2047....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 28.11.2005 20:37
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Вот сделал набросок .. но с ограничениями ... запускать программу с такими данными будет полезно только для файлов, размером от 1 до 20 мб, если чемто поможет, хорошо smile.gif Если надо можно и гистограмму сделать ...

{$r-}
uses crt, dos;

const
maxDegree = 19;
step = 1024 * 1024;

type

TLong = array[0..maxDegree] of byte;
var
startDir : string;

sizes : TLong;

procedure GetFiles(fn, dir : string; var L : TLong);
var
search : SearchRec;
begin

if dir[length(dir)] <> '\' then
dir := dir + '\';

FindFirst(dir + fn, AnyFile, search);

while dosError = 0 do begin
if search.attr <> $10 then begin
writeln(search.name:15, (search.size div step) : 10);
inc(L[search.size div step])
end;
FindNext(search);
end;

FindFirst(dir + '*.*', Directory, search);

while doserror = 0 do begin
if (search.attr and 16 <> 0) and (search.name[1] <> '.') then
GetFiles(fn, dir + search.name, L);
FindNext(search);
end;

end;

var
i : byte;
begin

clrscr;

FillChar(sizes, sizeof(sizes),0);

GetFiles('*.*','c:\Downloads\Music\Rok', sizes);

writeln;

for i := 1 to maxDegree do
if sizes[i] <> 0 then
writeln(i,' mb : ',sizes[i]);
readln;
end.



Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Катя
сообщение 28.11.2005 20:50
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Женский

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


Да пожалуйста сделай гистограмму, заранее спасибо!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 28.11.2005 21:35
Сообщение #7


Гость






Катя, Горизонтальная ч/б гистограмма в текстовом режиме (шаг гистограммы = 100Кб, диапазон размеров файлов - от 100К до 2Мб)

Если надо добавить цвет - скажи, сделаем... yes2.gif


Прикрепленные файлы
Прикрепленный файл  katya.pas ( 1.53 килобайт ) Кол-во скачиваний: 200
 К началу страницы 
+ Ответить 

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

 



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