На этом шаге мы поясним понятие файлового указателя.
С каждым файлом связан так называемый файловый указатель, отмечающий элемент, с которым программа работает в данный момент.
Так после выполнения процедур открытия файла для чтения или записи (Reset или Rewrite) указатель размещается на первом элементе (элементе с номером 0).
Например, после выполнения оператора Rewrite(k) из программы Pr1 предыдущего шага положение указателя будет следующим (рис.1):
Рис.1. Положение указателя после открытия файла
После записи первого элемента в файл (пусть это будет, например, число 5) указатель переместится на следующий элемент (рис.2):
Рис.2. Положение указателя после записи элемента
Таким образом, при выполнении процедуры Write(k,a) из программы Pr1 указатель каждый раз будет смещаться за последний введенный элемент. В этом случае говорят, что указатель находится в конце файла. Если указатель расположен на первом элементе файла (его порядковый номер нулевой), то говорят, что указатель находится в начале файла.
Аналогично, перед первым выполнением процедуры Read(k,a); из программы Pr2 предыдущего шага указатель находился в начале файла (рис.3):
Рис.3. Положение указателя перед чтением элемента
После выполнения данной процедуры картина будет следующей (рис.4):
Рис.4. Положение указателя после чтения элемента
Подведем итог:
Возникает вопрос: а можно ли управлять положением файлового указателя? Не только
можно, но и нужно. Дело в том, что при решении задач приходится, например, дважды
прочитать из файла группу элементов. Это невозможно осуществить без программного
изменения положения файлового указателя. Таким образом, должны существовать конструкции,
позволяющие изменять положение файлового указателя. Их рассмотрению посвящен следующий шаг.
На следующем шаге мы познакомимся с процедурами и функциями, использующими
файловый указатель.