Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
17.04.2013
Размер:
119.3 Кб
Скачать

Пояснения к программе.

Вся информация о найденных файлах заносится в одно-связанный список, который в последствии сортируется и выводится на экран.

Структура DIR содержит описание информации о файле.

Структура list - это описание элемента одно-связанного списка.

Переменные pntr и p - это рабочие переменные, типа указатель на элемент списка.

Переменная min - это адрес элемента списка с информацией о файле, имя которого необходимо расположить в самом начале списка.

Переменная dir - это переменная типа структуры DIR. Через эту переменную происходит обмен информацией.

Сортировка одно-связанного списка происходит следующим образом. Просматриваем последовательно все элементы списка. Список разбиваем на две части: отсортированную и не отсортированную. Определяем адрес элемента (min), с именем файла, который будет вначале списка, как первый элемент в не отсортированной части.

Указатель p - это адрес первого не отсортированного элемента списка. В не отсортированной части ищем элемент, удовлетворяющий условию сортировки ( функция strcmp ) и информацию найденного элемента записываем по адресу переменной p, а информацию по адресу p записываем на место найденного элемента min ( обмен через переменную dir ).

После завершения сортировки, выводим на печать содержимое информационной части одно-связанного списка. Одновременно происходит удаление списка из памяти.

Контрольные вопросы.

1. Какие файлы содержат прототипы функций работы с каталогами?

2. Каково назначение функции findfirst?

3. Какая функция продолжает поиск файлов, заданных в функции findfirst?

4. Какие аргументы может использовать функция main?

5. Каково минимальное количество аргументов передаваемых программе?

Лабораторное задание

Напишите программу в соответствии с вариантом задания. При написании программы используйте функции управления экраном.

Порядок выполнения лабораторной работы

1. Составьте текст программы, соответствующий Вашему варианту задания.

2. Отладьте и выполните программу с аргументами и без аргументов.

Приложение

Основные функции работы с каталогами файловой системы

Подключаемый файл dir.h

int chdir ( char *pathname );

изменяет текущий каталог в соответствии с pathname. Pathmame должен указывать на существующий каталог.

Не позволяет изменить имя устройства.

Возвращаемое значение:

0 - успех

1 - ошибка.

char* getcwd ( char *buf , int n );

читает полное имя текущего рабочего каталога (включая имя устройства) длины не более n символов, сохраняя его в buf.

Возвращаемое значение:

адрес buf , или NULL в случае ошибки.

void fnmerge ( char * path,

char *drive,

char *dir,

char *name,

char * ext );

создает полное имя файла из отдельных компонент:

drive - устройство, например С:

dir - путь каталогов, например \DOS\BGI\

name - имя, например egavga

ext - расширение, например .bgi

path - содержит адрес буфера, в котором достаточно места, для полного имени файла.

int fnsplint ( char * path,

char *drive,

char *dir,

char *name,

char * ext );

разбивает полное имя файла, заданное в path, на четыре компоненты (см. Функцию fnmerge).

int getcurdir ( int drive , char *direc );

читает имя текущего рабочего каталога на указанном параметром drive устройстве.

Значение drive равное 0 соответствует устройству "A", 1 - "В", 2 - "С" и т.д.

Имя каталога записывается в direc.

Возвращаемое значение:

0 - успех

-1 - ошибка.

int getdisk ( void );

возвращает номер текущего диска.

0 - диск А,

1 - диск В,

2 - диск С и т. д.

int setdisk ( int drive );

устанавливает устройство drive.

Возвращаемое значение - общее число дисков, имеющихся в наличии.

Соседние файлы в папке Lab6