Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laba_7_Paskal.docx
Скачиваний:
1
Добавлен:
25.11.2019
Размер:
261.69 Кб
Скачать

5. При помощи каких процедур реализуются операции ввода-вывода (чтения из файла и записи в файл)? Каким образом происходит выполнение этих процедур?

Операции ввода-вывода (чтения из файла и записи в файл) реализуются с помощью процедур: Read, Write.

Правила записи операторов:

Read(F, A, B, C,...);

Write(F1, X, Y, Z, ...);

F, F1 – имена файловых переменных, к которым были применены операции открытия Reset и Rewrite соответственно,

A, B, C – переменные, типы которых совпадают с базовым типом файловой переменной F,

X, Y, Z – выражения, типы которых совпадают с базовым типом файловой переменной F1.

Выполнение процедуры Read: начиная с текущей позиции указателя файла будут последовательно читаться значения, содержащиеся в файле. Каждое прочитанное значение будет присваиваться очередной переменной из тех, которые указаны в вызове процедуры. После чтения очередного значения указатель файла будет смещаться на следующую позицию. Если в процессе выполнения процедуры Read текущий указатель файла будет установлен на позицию, не содержащую информации (то есть будет достигнут конец файла), то чтение будет прекращено, процедура Read завершится преждевременно, и возникнет ситуация ‘конец файла». Возникновение этой ситуации можно проверить с помощью встроенной функции EOF.

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

6. Каково назначение операций перемещения по файлу, определения параметров файла?

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

После выполнения процедуры Seek дальнейшие операции чтения или записи будут проводиться начиная с установленной позиции указателя.

Функция FileSize(F) определяет число элементов файла.

Функция FilePos(F) определяет номер элемента, на который установлен текущий указатель.

Функция EOF(F) возвращает логическое значение true, если достигнут признак конца файла, или false в противном случае. Например, если файл использовался для чтения, то возникновение ситуации «конец файла» (и, соответственно, значение true, возвращаемое функцией EOF) означает, что все элементы файла прочитаны.

Процедура Truncate(F) используется для удаления части файла, начиная от текущей позиции указателя до окончания файла.

7. Как организовать обработку ошибок при работе с файлами?

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

Имеется возможность предусмотреть собственную реакцию на ошибочные ситуации в самой программе. Для этого необходимо в начале «опасного» фрагмента программы отключить автоматическую проверку на возникновение ошибки. Это делается внесением директивы компилятора {$1-}. В этом случае возникновение ошибки при выполнении программы не будет приводить к немедленному ее завершению; вместо этого код ошибки (отличный от нуля) будет сохранен системой. Посредством стандартной функции IoResult без параметров можно получить этот код и построить дальнейшие действия в зависимости от его значения, например, вывести краткое сообщение об ошибке (без указания причины ошибки).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]