Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции информатика - Семестр 2.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
516.1 Кб
Скачать

13.2 Операции ввода-вывода Write, Read

Процедура read предназначена для чтения значений из файла в программу. Первым параметром должно быть имя файловой переменной, к которой была применена одна из операций открытия (reset, rewrite). Далее должны следовать переменные, в которые будут помещаться читаемые из файла значения. Тип этих переменных должен совпадать с базовым типом файла из первого параметра. Начиная с текущей позиции указателя файла будут последовательно читаться значения, содержащиеся в файле.

Процедура write имеет обратный смысл, позволяя записывать в файл информацию из программы. Первым параметром должна быть файловая переменная (открытая). Далее должен следовать список выражений.

Выполнение процедуры write следующее:

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

13.3. Перемещение по файлу.

При помощи двух процедур: Seek, Truncate.

И три дополнительные функции: FileSize, FilePos, EOF.

Процедура Seek позволяет явно изменить значение текущего указателя, установив его на элемент файла с заданным номером. Процедура имеет два параметра : переменную файлового типа и целое (типа longint).

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

Seek(f, FilePos(f)+1) {пропуск одного элемента}

Seek (f,0) {установка указателя на начало файла}

Seek(f, FileSize(f)) {установка за следующий за последним текущего указателя.

Добавление в 'хвост' файла данных}

Функция Eof вызывается с одним параметром - файловой переменной - и возвращает логическое значение true или false в зависимости от того достигнут ли конец файла или нет.

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

13.4 Обработка ошибок ввода - вывода

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

В системе имеется возможность предусмотреть собственную реакцию на ошибочные ситуации в самой программе. Для этого необходимо в начале опасного фрагмента отключить автоматическую проверку на возникновение ошибки {$I-}.

Тогда программа в случае ошибки не вызовет ее остановку, а запомнит в стандартной функции без параметров. И в зависимости от ее значения построить дальнейшие действия.

….

Assign(f, 'c:/data');

{$I-}

reset(f);

{$I+}

if ioresult <>0 then

write ('ошибка при открытии файла');

…..

Следует отметить, что после отключения режима автоматического контроля следует проверить сразу состояние ioresult. Пока этого не будет сделано, работу продолжать нельзя. После обращения переменная обнуляется до следующего аварийного завершения обращения к файлу.

Assign(f, 'c:/data' );

{$I-}

reset (f);

code:=ioresult;

if code<>0 then begin

write('ошибка при открытии файла : ');

case code of

1: write ('файл не найден');

3: write ('маршрут не найден');

4: write ('слишком много открытых файлов');

5: write ('запрет доступа к файлу');

12: write ('некорректный код доступа к файлу');

else

….

End;

End;

{$I+}