Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО от Тихомирова / Файловая_система 9 лр.doc
Скачиваний:
24
Добавлен:
08.06.2015
Размер:
126.98 Кб
Скачать

1.5.2 Контроль ошибок ввода-вывода

При работе с файлами необходимо предусмотреть обработку возможных ошибок. Практика показывает, что именно операции ввода-вывода вызывают большую часть ошибок, возникающих в приложении. Контроль за ошибками ввода-вывода зависит от применяемых функций. Все функции Win32 API возвращают код шибки, который нужно проанализировать.

При возникновении ошибок ввода-вывода в функциях, работающих с файловыми переменными, генерируется исключительная ситуация класса InOutError. Но так происходит только в том случае, если включен контроль ошибок ввода-вывода. Для этого предусмотрены соответствующие директивы компилятора:

{$I+} - контроль включен (установлена по умолчанию);

{$I-} - контроль отключен.

Класс EInOutError имеет поле Errorcode. При возникновении этой исключительной ситуации можно получить его значение и принять решение. Некоторые значения кода ошибки:

  1. – файл не найден;

  2. – неверное имя файла;

  3. – слишком много открытых файлов;

  4. – доступ запрещен;

100 – достигнут конец файла;

101 – диск переполнен;

106 – ошибка ввода.

  1. Методика выполнения

Задание 1. Разработать приложение для вывода:

  1. полной информации о логических томах компьютера, на котором выполняется лабораторная работа

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

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

  4. информации об EXE-файле, имя которого выбирается пользователем в диалоговом окне. Для этого попробовать установить компонент gsFileVersionInfo, текст которого приведен в приложении. Для установки компонента находящийся в приложении текст скопировать, преобразовать в текстовое представление и сохранить с расширением pas. При невозможности установки использовать в приложении функции Win32 из компонента.

  5. На форму поместить компоненты OpenDialog, gsFileVersionInfo (если он установлен) и 9 компонентов Label. Проверить работу приложения. При необходимости внести коррективы в текст используемого компонента.

Задание 2. Разработать приложение для формирования двоичного файла, содержащего 10000 целых положительных чисел от 1 до 10000.

Полученный файл прочитать, используя асинхронный ввод, найти все простые числа и вывести результаты в тестовый файл, используя асинхронный вывод.

Задание 3. Разработать приложение, наглядно демонстрирующее преимущество (сокращение времени обработки информации) при использовании асинхронного ввода-вывода. Содержательную часть (предметную область) выбрать самостоятельно.

  1. Отчет о работе

Должен содержать описание алгоритмов и функций, реализующих задания 1 – 3 и результаты выполнения заданий.

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

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