Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы СПО / Мет6.doc
Скачиваний:
35
Добавлен:
12.04.2015
Размер:
406.02 Кб
Скачать

Библиографический список

  1. Финогенов К.Г. Самоучитель по системным функциям MS-DOS. – М.: Энтроп, 1999. – 383 с.

  2. Зубков С.В. Assembler для DOS, Windows и UNIX. – М.: Изд-во ДМК, 1999. – 640 с.; 2000. – 608 с.

Приложение 1

Поиск файлов по дереву каталогов

Приведенный алгоритм позволяет вести поиск файлов по маске на текущем диске или в текущем каталоге и его подкаталогах.

В алгоритме используются обозначения: Level уровень вложенности подкаталогов (у каталога, с которого поиск начинается, Level=0, у его подкаталогов Level=1 и т.д.), N – количество уже пройденных подкаталогов на текущем уровне вложенности.

Просмотр дерева каталогов ведется в следующей последовательности: 1) в просматриваемом каталоге ищутся файлы по маске. После того, как подходящие файлы закончились, переход к этапу 2) поиск вложенных подкаталогов по маске «*». Находится подкаталог, который еще не был просмотрен, и этапы 1-2 повторяются в нём. Когда на текущем уровне вложенности подкаталогов нет (добрались до низа дерева), или все подкаталоги уже просмотрены, происходит переход на один уровень вверх, в родительский каталог, где выполняется этап 2.

Число просмотренных подкаталогов N для каждого уровня запоминается в стеке. На дне стека – значение N для уровня Level=0, над ним – для Level=1, и т.д.

На этапе поиска подкаталогов первые два поиска возвращают ссылки на каталоги с именами «.» и «..». Чтобы их пропустить, при первом просмотре подкаталога устанавливается начальное N=2.

Приложение 2

Варианты заданий

  1. Подсчитать размер, который занимает группа файлов, заданная по маске. Маска передается в командной строке, и может содержать путь к каталогу. Результаты вывести на экран.

  2. Подсчитать количество 512-байтовых секторов, занимаемых файлами, маска которых передается в командной строке и может содержать путь к каталогу. Результаты вывести на экран.

  3. Подсчитать размер всех файлов текущего каталога и его подкаталогов, вывести на экран округленным в Кбайтах. Объем, занимаемый самими подкаталогами, не учитывать.

  4. Подсчитать количество 512-байтовых секторов, занимаемых файлами текущего каталога и его подкаталогов. Результаты вывести на экран. Сектора, занимаемые самими подкаталогами, не учитывать.

  5. В файл отчета, имя которого передается программе в командной строке, записать информацию о файлах текущего каталога: имя и размер в Кбайтах.

  6. В файл отчета, имя которого предопределено в программе, записать информацию (имя и размер в байтах) о файлах текущего каталога, заданных по маске. Маска передается в командной строке.

  7. В файл отчета, имя которого передается программе в командной строке, записать информацию о файлах текущего каталога: имя, дату создания и атрибуты.

  8. Записать в файл отчета, имя которого передается в командной строке, информацию о файле текущего каталога, имеющем максимальный размер: имя, атрибуты, размер, дату/время создания, последнего доступа и модификации.

  9. Записать в файл отчета, имя которого передается в командной строке, информацию о файлах текущего каталога, созданных или измененных в течение трех последних дней. Информация включает имя, дату и время.

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

  11. В текстовом файле, имя которого передается в командной строке, перечислены полные имена файлов, по одному в строке. Дописать в тот же файл напротив каждого имени атрибуты, дату создания и размер соответствующего файла.

  12. В файл отчета с именем REPORT.TXT записать полные имена файлов диска С:, заданных по маске. Маска передается в командной строке.

  13. У файлов, перечисленных в командной строке через запятую, установить атрибут «только для чтения». Если какой-либо из файлов не существует, вывести сообщение.

  14. В файл REPORT.TXT записать полные имена скрытых файлов текущего диска.

  15. В файл отчета записать имена файлов текущего каталога, имеющих установленный атрибут. Обозначение атрибута и имя файла отчета передаются в командной строке.

  16. Подсчитать количество файлов с атрибутом «архивный» в текущем каталоге и его подкаталогах. Результат вывести на экран.

  17. Подсчитать суммарный размер файлов текущего каталога с атрибутами, комбинация которых передается в командной строке. Результаты записать в файл отчета. Его имя задается в программе.

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

  19. В файл отчета записать имена и даты файлов текущего каталога, созданных в интервал времени, который указан в командной строке. Имя файла-отчета задается в программе.

  20. Присоединить содержимое файла, следующего вторым в командной строке, к содержимому первого из файлов. Если операцию невозможно выполнить, вывести сообщение о причине. Полные имена файлов могут содержать путь.

  21. Создать на диске текстовый файл. Файл заполняется строками, вводимыми с клавиатуры. Имя файла передается в командной строке, может содержать путь. Если файл с указанным именем уже существует, выводится сообщение об ошибке. Если путь не найден, предлагается создать новые каталоги.

  22. Скопировать файл, имя которого передается в командной строке, в файл с именем COPY.*. У исходного файла установить атрибут «только для чтения».

  23. В командной строке программы передается имя текстового файла. Подсчитать количество слов в файле и вывести значение на экран.

  24. В командной строке программы передаются имена двух текстовых файлов. Скопировать из первого файла во второй строки длиной не более 10 символов.

  25. В командной строке передается путь к каталогу. Удалить этот каталог и все его содержимое. Если путь указан неверно – сообщение об ошибке. Если каталог не пуст или содержит файлы с атрибутом «только для чтения» – запрашивать подтверждение на удаление.

  26. Удалить файлы по маске, указанной в командной строке. Маска может содержать путь к каталогу. Если файл содержит атрибут «только для чтения» вывести его имя на экран и не удалять.

  27. Программе в командной строке передается имя текстового файла, каждая строка которого содержит путь и имя файла. Удалить перечисленные файлы. Файлы с атрибутом «только для чтения» удалять после подтверждения пользователя.

  28. Программе в командной строке передаются два параметра: имя текстового файла, каждая строка которого содержит путь и имя файла, и путь к каталогу, куда их требуется переместить. Файлы с атрибутом «только для чтения» также подлежат перемещению с сохранением своих атрибутов.

  29. Программе в командной строке передаются два параметра: маска файлов текущего каталога и путь к каталогу, куда эти файлы требуется переместить.

  30. Программе в командной строке передаются два параметра: маска файлов текущего каталога и путь к каталогу, куда эти файлы требуется скопировать.

* В формате Windows дата/время выражается в 100-наносекундных интервалах относительно 1 января 1601 года. В формате DOS младшее слово – время создания, старшее слово – дата создания, следующие 4 байта не используются.

Соседние файлы в папке Лабы СПО