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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. Результаты работы покажите преподавателю.

  4. Защитите лабораторную работу.

Требования к отчету

Отчет должен содержать:

  1. Краткие теоретические сведения.

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

  3. Программу, соответствующую Вашему номеру варианта.

  4. Результаты выполнения программы.

Приложение

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

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

int chdir (char *pathname);

изменяет текущий каталог в соответствии с pathname. Pathname должен указывать на существующий каталог. Не позволяет изменить имя устройства. Возвращяемое значение: 0 – успех, 1 – ошибка.

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

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

void fnmerge ( char *path,

char *drive,

char *dir,

char *name,

char *ext);

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

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

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

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

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

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

int fnsplit( char *path,

char *drive,

char *dir,

char *name,

char *ext);

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

int getcurdir ( int drive, char *direc);

читает имя текущего рабочего каталога на указанном параметре drive устройстве. Значение drive равное 0 соответствует устройству “А”, 1 – “В”, 2 – “С” и т.д. Имя каталога записывается в direc. Возвращаемое значение: 0 – успех, –1 – ошибка.

int getdisk (void);

возвращает номер текущего диска. 0 – диск А, 1 – диск В, 2 – диск С и т.д.

int setdisk(int drive);

устанавливает устройство drive. Возвращаемое значение – общие число дисков, имеющихся в наличии.

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