Основні концепції мов програмування на прикладі мови Паскаль, класифікація файлів
Файлові типи даних введені в мову для роботи з зовнішніми пристроями - файлами на диску, портами, принтерами і т.д. Передача даних з зовнішнього пристрою в оперативну пам'ять називається читанням або введенням, зворотний процес - записом або висновком.
Запис - одиниця обміну даними між програмою і зовнішньою пам'яттю.
Файлові типи мови Паскаль бувають стандартні і визначаються програмістом. Стандартними є текстовий файл (text), збірний і нетипізований файл (file). Приклад опису файлів в програмі:
Будь-який файл, на відміну від масиву і запису, може містити необмежену кількість елементів.
Текстові файли призначені для зберігання інформації у вигляді рядків символів. При виведенні в текстовий файл дані перетворюються з внутрішньої форми подання в символьну, зрозумілу людині, при введенні виконується зворотне перетворення.
Прямий доступ можливий завдяки тому, що дані в цих файлах умовно розділені на блоки однакового розміру, і перед операцією обміну виконується установка поточної позиції файлу на заданий блок. Прямий доступ в поєднанні з відсутністю перетворень забезпечує високу швидкість отримання потрібної інформації.
Для розуміння суті роботи з файлами корисно розділити їх за ознакою наявності або відсутності перетворення інформації при виконанні читання-запису і за способом доступу (табл. 2.2).
Класифікація файлів Паскаля за способом доступу
Щоб не плутати файли в програмі і файли на диску, змінні файлового типу називають логічними файлами, а реальні пристрої і файли на диску - фізичними файлами. Їх імена задаються за допомогою рядків символів, наприклад:
Для організації введення-виведення в програмі необхідно виконати наступні дії.
1. Оголосити файлову змінну.
2. Зв'язати її з фізичним файлом.
3. Відкрити файл для читання і / або запису.
4. Виконати операції введення-виведення.
Всі стандартні процедури і функції Паскаля, що забезпечують введення-виведення даних, працюють тільки з логічними файлами, тобто з файловими змінними. Перед виконанням операцій файлова змінна зв'язується з фізичним файлом, після чого він в тексті програми не згадується.
Введення-виведення виконуються не безпосередньо між зовнішнім пристроєм і змінними програми, а через так званий буфер - спеціальну область оперативної пам'яті. Буфер виділяється для кожного відкритого файлу. При записи в файл вся інформація спочатку направляється в буфер і там накопичується доти, поки весь буфер не заповниться. Тільки після цього або після спеціальної команди скидання відбувається передача даних на зовнішній пристрій. При читанні з файлу дані спочатку зчитуються в буфер, причому, даних зчитується не стільки, скільки запитується, а скільки поміститься в буфер.
Механізм буферизації дозволяє більш швидко і ефективно обмінюватися інформацією з зовнішніми пристроями.
У Паскалі є підпрограми, що застосовуються для файлів будь-якого типу, а також підпрограми для роботи тільки з певними типами файлів. Розглянемо спочатку перші.