Якщо змінна F має тип файл, то компілятор автоматично вводить змінну F, котра називається буферною змінною, або інакше вікном, через котре можна прочитати або записати один компонент. Змінна F має такий самий тип як і компоненти файла F. Вікно встановлюється напроти того компонента, де знаходится вказівник файла.
Приклад. Прослідкуємо на схемі запис в файл чисел 153, 512, 25.
┬───┬ ┬───┬───┬ ┬───┬───┬ ┬───┬───┬───┬
1) │ │ 2) │153 │ │ 3) │ 153│ │ 4) │153 │512 │ │
┴───┴ ┴───┴───┴ ┴───┴───┴ ┴───┴───┴───┴
┌───┐ ┌───┐ ┌───┐ ┌───┐
│153 │ │ ? │ │ 512 │ │ ? │
└───┘ └───┘ └───┘ └───┘
┬───┬───┬───┬ ┬───┬───┬───┬───┬
5) │153 │ 512│ │ 6) │153 │512 │ 25 │ │
┴───┴───┴───┴ ┴───┴───┴───┴───┴
┌───┐ ┌───┐
│ 25 │ │ ? │
└───┘ └───┘
Слід відзначити, що після запису в файл значення буферної змінної F стає невизначеним (псується).
Стандартні процедури роботи з файлами.
Всі основні процедури і функції, що забезпечують ввід-вивід даних, працюють тільки з логічними файлами. Фізичний файл повинен бути пов'язаний з логічним до виконання процедур відкриття файлів. Turbo Pascal вводить ряд процедур і функцій, котрі можуть застосовуватись для будь-яких типів файлів : Assign, Reset, Rewrite, Close, Rename, Erase, Eof, Ioresult.
Процедура
Assign(var f; Filename : String)
зв'язує логічний файл f із фізичним файлом, повне ім'я якого задано в стрічці Filename.
Процедура
Reset(var f)
відкриває логічний файл f для наступного читання даних чи, як кажуть, відкриває вхідний файл. Після успішного виконання процедури Reset файл готовий до читання з нього першого елементу.
Процедура
Rewrite(var f)
відкриває логічний файл f для наступного запису даних ( відкриває вихідної файл ). Після успішного виконання цієї процедури файл готовий до запису в нього першого елементу.
Процедура
Close(var f)
закриває відкритий до цього логічний файл. Виклик процедури Close необхідний при завершенні роботи з файлом. Якщо з якій-небуть причини процедура Close не буде виконана, файл все ж таки буде створений на зовнішньому пристрої, але вміст останнього буферу в нього не буде перенесено. Для вхідних файлів використання оператора закриття файлу необов'язкове.