Как Вы уже заметили в предыдущей программе была использована функция IOResult. Рассмотрим, какую роль выполняет эта функция.
Функция IOResult предназначена для поиска ошибок, возникающих при работе с файлами. Эта функция возвращает результат последней операции ввода/вывода, если автоматический контроль за ошибками, возникающими при выполнении операций ввода/вывода, отключен с помощью директивы компилятора {$I-}. При безошибочном выполнении операций ввода/вывода функция IOResult всегда возвращает результат равный нулю. Поэтому, как правило, ее используют в операции сравнения с нулем. При использовании функции IOResult нужно помнить о том, что она возвращает величину, которую можно интерпретировать как флаг ошибки лишь в том случае, когда эта функция вызывается следом за операцией ввода/вывода. А если Вы хотите провести анализ ошибки позже, Вам придется сохранить возвращаемое значение в некоторой промежуточной переменной.
Просмотрите еще раз фрагмент программы, в которой посредством процедуры reset производится попытка открытия файла. Если эта попытка не увенчалась успехом, то на экран будет выведено сообщение об ошибке.
{$I-} {отключение контроля ввода/вывода}
reset (F,'C:\TP7\BIN\Text.txt'); {открытие файла для чтения}
if IOResult <> 0
then
writeln ('Ошибка при открытии файла');
{$I+} {включение контроля ввода/вывода}
В своих программах Вы должны применять функцию IOResult.
Задание. Выберите с учителем одну из предложенных ниже задач.
- Создайте файл целых чисел (числа вводятся с клавиатуры). Поменяйте местами первый и третий элементы файла, используя в программе процедуру Seek. Выведите на экран содержимое первоначального и измененного файлов. Предусмотрите в программе вывод соответствующего сообщения, если в файле не оказалось третьего элемента.
- Создайте файл целых чисел (числа вводятся с клавиатуры). Выведите числа
- с четным порядковым номером,
- с нечетным порядковым номером,
- с порядковым номером, кратным 7,
- с порядковым номером, кратным 15,
используя в программе процедуру Seek. Предусмотрите в программе вывод соответствующего сообщения, если в файле не оказалось нужных элементов.
- Создайте файл символов (символы вводятся с клавиатуры). Выведите на экран символы
- с пятого по пятнадцатый,
- с третьего по двадцатый,
- с k-го по s-ый.
используйте в программе процедуру Seek. Предусмотрите в программе вывод соответствующего сообщения, если в файле не оказалось нужных элементов.
- Создайте файл, содержащий все буквы русского алфавита. Запросите у пользователя числовой промежуток [N, M]. Выведите на экран все символы, коды которых лежат в заданном промежутке. Используйте в программе процедуру Seek.
- Предусмотрите в программе вывод соответствующего сообщения, если в файле нет символов, коды которых лежат в заданном промежутке. Создайте файл, состоящий из строк. Запросите у пользователя порядковые номера двух строк и поменяйте их в файле между собой. Дополнительный файл не создавайте. Используйте в программе процедуру Seek. Предусмотрите в программе вывод соответствующего сообщения, если в файле не оказалось нужных строк.
- Создайте файл произвольно выбранного типа. Введите в него некоторое количество элементов. С помощью функции FileSize разделите файл на заданное количество частей и соедините их в другом порядке во вновь созданном файле. Содержимое файлов выведите на экран.
- Создайте файл символьного типа. Используя содержимое этого файла, создайте файл строкового типа. Содержимое файлов выведите на экран.
- Создайте файл строкового типа. Используя содержимое этого файла, создайте файл символьного типа. Содержимое файлов выведите на экран.
- Создайте файл, содержащий буквы русского и латинского алфавита. Используя содержимое этого файла, создайте файл кодов символов. Содержимое файлов выведите на экран.
- Создайте файл типа Integer. Введите в него некоторое количество элементов. С помощью функции FilePos определяя позицию указателя на элемент файла, запишите во вновь созданном файле элементы файла и соответствующие им позиции указателя. Содержимое файлов выведите на экран.