Основні концепції мов програмування на прикладі мови Паскаль, класифікація файлів

Файлові типи даних введені в мову для роботи з зовнішніми пристроями - файлами на диску, портами, принтерами і т.д. Передача даних з зовнішнього пристрою в оперативну пам'ять називається читанням або введенням, зворотний процес - записом або висновком.

Запис - одиниця обміну даними між програмою і зовнішньою пам'яттю.

Файлові типи мови Паскаль бувають стандартні і визначаються програмістом. Стандартними є текстовий файл (text), збірний і нетипізований файл (file). Приклад опису файлів в програмі:

Будь-який файл, на відміну від масиву і запису, може містити необмежену кількість елементів.

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

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

Для розуміння суті роботи з файлами корисно розділити їх за ознакою наявності або відсутності перетворення інформації при виконанні читання-запису і за способом доступу (табл. 2.2).

Класифікація файлів Паскаля за способом доступу

Щоб не плутати файли в програмі і файли на диску, змінні файлового типу називають логічними файлами, а реальні пристрої і файли на диску - фізичними файлами. Їх імена задаються за допомогою рядків символів, наприклад:

Для організації введення-виведення в програмі необхідно виконати наступні дії.

1. Оголосити файлову змінну.

2. Зв'язати її з фізичним файлом.

3. Відкрити файл для читання і / або запису.

4. Виконати операції введення-виведення.

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

Введення-виведення виконуються не безпосередньо між зовнішнім пристроєм і змінними програми, а через так званий буфер - спеціальну область оперативної пам'яті. Буфер виділяється для кожного відкритого файлу. При записи в файл вся інформація спочатку направляється в буфер і там накопичується доти, поки весь буфер не заповниться. Тільки після цього або після спеціальної команди скидання відбувається передача даних на зовнішній пристрій. При читанні з файлу дані спочатку зчитуються в буфер, причому, даних зчитується не стільки, скільки запитується, а скільки поміститься в буфер.

Механізм буферизації дозволяє більш швидко і ефективно обмінюватися інформацією з зовнішніми пристроями.

У Паскалі є підпрограми, що застосовуються для файлів будь-якого типу, а також підпрограми для роботи тільки з певними типами файлів. Розглянемо спочатку перші.