ПЛАН
ПОСЛІДОВНОСТІ 1
Фізичний і логічний файли 1
Класифікація файлів даних 2
Технологія обробки файлів даних 3
Особливості обробки типізованих файлів даних 6
Особливості обробки текстових файлів даних 7
Особливості обробки безтипових файлів даних 8
Методи доступу до елементів файлу 9
Потоки і файли 10
Послідовності Фізичний і логічний файли
Загальна властивість розглянутих раніше структурованих типів даних полягає в тому, що їх кардинальне число скінчене. Такі дані досить легко відображаються в пам'яті ЕОМ і називаються фундаментальними.
Ускладнені структури, такі як послідовності, дерева, графи і т.д. характеризуються тим, що їх кардинальні числа нескінченні. Ця відмінність не дозволяє заздалегідь визначити обсяг пам'яті для розміщення таких даних.
Однак при цьому хоча послідовність (файл даних) і є ускладненою структурою, оскільки її кардинальне числі не обмежена, але вона так широко і часто використовується, що її, як правило, відносять до фундаментальних структур.
Особлива значимість файлів даних пояснюється тим, що з їх допомогою здійснюється зв'язок програми з "зовнішнім світом", тобто забезпечуються введення і виведення інформації, а також зберігання необхідної інформації в той час, коли програма не активізована. Іншими словами файлова змінна не знищується після виконання програми і потім може існувати як незалежна від неї змінна з деяким присвоєним їй ім'ям. Тому для більшості програм справедливе твердження про те, що якщо в результаті виконання програми не створений файл (результати не збережені), то її виконання не має сенсу.
Поняття файла можна розглядати з двох точок зору:
-
фізичний файл (існує фізично) - це іменована область зовнішньої пам'яті, яка містить логічно зв’язану інформацію. Структура фізичного файлу являє собою послідовність байт пам'яті носія інформації.
-
логічний файл (існує як абстракція) - це структура даних, що використовується у програмуванні. Структура логічного файлу - це послідовність однотипних компонент, кількість яких не фіксується при оголошенні, а визначається в процесі виконання програми.
Компоненти файлу даних можуть бути будь-якого типу, окрім файлового. Для позначення кінця файлу використовується спеціальний маркер Eof - кінець файлу (керуючий символ з кодом 26). Загальна структура файлу представлена на рис. 1:
елемент_1 |
елемент_2 |
. . . |
елемент_n |
Eof |
Рис. 1 Структура файлу даних
Якщо файл не містить жодної компоненти, то він вважається порожнім.
Формується файл послідовним додаванням елементів в його кінець.
Структура логічного файлу дуже схожа на структуру масиву. Різниця між ними полягає в тому, що у масива кількість елементів фіксується при оголошенні і він цілком розташовується в оперативній пам’яті; у файлу ж кількість елементів у процесі роботи програми може змінюватися, і він розташовується на зовнішніх носіях інформації.
Кардинальнее число такого типу даних нескінченне.
Оскільки файл розмішений на зовнішньому носії, а не в ОП, то його елементи не є звичайними змінними програми. Основною особливістю файлу є те, що у будь-який момент виконання програми з усіх його елементів можна опрацьовувати лише один - доступний елемент файлу. Усі інші елементи у цей момент є недоступними для опрацювання.
Номер доступного елемента у послідовності елементів файлу є значенням спеціальної змінної, явно не означеної у програмі, яка називається файловим покажчиком. На початку роботи з файлом даних покажчик файлу встановлюється на початок файлу. При обробці компонент файлу цей покажчик послідовності переміщується до потрібного елемента і робить його доступним для обробки.
При позиціюванні покажчика файлу фізичний номер елемента файлу завжди на 1 менший за логічний.
Файл даних може бути створений як у режимі редагування, так і програмно (у результаті роботи програми).
У програмах файли представляються файловими змінними визначеного типу. Файлова змінна насправді є не просто змінною, а певним об'єктом, з яким пов'язані уявлення про конкретну структуру даних, що зберігатимуться в файлі.
Над ними (файловими змінними) в цілому не визначені будь-які операції. Усі дії можуть виконуватися лише з компонентами файла (відповідно до їх типу).