ПАСКАЛЬ: РОБОТА З ФАЙЛАМИ
Після зв’ язування фізичний файл стає складовою частиною файлової змінної. Він розташований на зовнішньому носії, а не в оперативній пам’ яті комп’ ютера, тому його елементи не є звичайними змінними програми. Основною особливістю файла є те, що в будь-який момент виконання програми з усіх його елементів можна обробляти, тобто читати або записувати, лише один. Він називається доступним елементом файла. Всі інші елементи в цей момент недоступні для обробки.
Елемент 1Елемент 2...Елемент k...Елемент N
Номер доступного елемента в послідовності елементів файла є значенням спеціальної змінної. Вона не означається в Паскаль-програмі і явно не задається, але вона є й називається файловим вказівником (рис.13.1). Значення файлового вказівника та відповідно розташування доступного елемента в послідовності змінюється при виконанні підпрограм обробки файлів.
Основними діями при роботі з файлом є читання, тобто копіювання значення доступного елемента в "нормальні" змінні програми, та запис – копіювання значення в доступний елемент. Можливість читання та запису задається режимом доступу до файла, або його станом. Таким чином, в будь-який момент виконання програми файл перебуває в певному стані – читання, запису або чогось іншого.
Отже, значення файлової змінної складається з послідовності значень у фізичному файлі, номера доступного елемента та стану. Позначимо це у вигляді (F, i, s), де F – послідовність значень елементів
Приклад. Вираз (<11, 12, 13, 14>, 1, R) позначає значення файлової змінної, складене з послідовності чисел 11, 12, 13, 14, друге з яких (його номер 1!) можна прочитати. Зобразимо це значення так:
F11121314
¬ СтанR
Стрілка вказує на доступний елемент, тобто є позначенням файлового вказівника.
Вираз (<11, 12>, 2, W)позначає файл із двох елементів:
F1112
¬ СтанW
Обидва вони недоступні, файл перебуває в стані запису, до нього можна додати новий елемент (із номером 2) і присвоїти йому якесь значення.
Вираз (<>, 0, R) позначає порожній файл, у якому немає елементів.
Підкреслимо, що кінець типізованого файла ніяк не задається в ньому самому. Спосіб задання кінця визначається операційною системою і тут не описується.
І останнє зауваження. Елементи типізованих файлів можуть мати будь-який скалярний чи структурний тип, окрім файлового чи структурного з елементами-файлами. Файли також не можуть бути елементами інших структур. Наприклад, недопустимі означення типів
type FF = file of file of якийсь тип;{???}
FA = array [ 1..10 ] of file of якийсь тип; {???}
FAF = file of FA {???}.