- •Завдання (інструкційна картка) для лабораторної роботи
- •Інструкційна картка лабораторного заняття № 1
- •Методичне забезпечення
- •Матеріально-технічне забезпечення
- •Питання для актуалізації опорних знань
- •Правила техніки безпеки
- •Загальні відомості з теми
- •Стандартні підпрограми для обробки файлів
- •Текстові файли
- •Контроль операцій введення-виведення
- •Файли без типу
- •Зміст роботи
- •Індивідуальні завдання
- •Приклади програм
- •Блок - схема програми:
- •Лістинг програми:
- •Результат роботи програми:
- •Лістинг програми:
- •Результат роботи програми:
- •Контрольні питання
Стандартні підпрограми для обробки файлів
Вони призначені для організації і ефективної обробки файлів. У подальшому filevar означає будь-який файловий тип, anystring – будь-який рядковий тип, filetype – тип, що збігається з типом елементів файлу.
Процедури
Assing(Var f: filevar; s: anystring) – файлова змінна f ототожнюється з фізичним файлом з іменем s. Ім’я s містить основне або розширене ім’я файлу, а також може містити ім’я дисководу. Будь-яка робота з файлом повинна починатися з цієї процедури.
Наприклад, процедура Assign(h,’a:myfile.dta’) ототожнює файлову зміну h фізичним файлом ‘myfile.dta’, що міститься в дисководі A.
Close(Var f:filevar) – закриття файлу f. В цьому випадку у файл записується мітка кінця файлу і вносяться необхідні зміни в директорій. Ця процедура необхідна для збереження результатів під час створення чи поновлення файлів.
Erase(Var f:filevar) – файл f витирається з диска.
Flush(Var f:filevar) – очищає буфер файлу f. Коли відбувається запис у файл, то дані записуються в нього не відразу. Спочатку накопичуються у буфері, що міститься в оперативній пам’яті, а коли буфер заповниться, відбувається запис у файл. Процедура Flush записує вміст буфера в тому стані, в якому він є в момент виклику процедури у файл. Якщо перед закриттям файлу буфер не був порожнім, то процедура Close автоматично переносить його вміст у файл.
Read(Var f:filevar; Var a1,…,an:filetype) – зчитування елементів з файлу f і присвоєння їх значень змінним із списку. Список повинен складатися хоча б з однієї змінної, інакше не виконуватимуться ніякі дії. Зчитування починається з поточного місцезнаходження вказівника файлу, а після закінчення процедури він встановлюється на першому непрочитаному елементі. Якщо тип деякої змінної зі списку не збігається з типом елементів файлу, то фіксується помилка введення-виведення.
Rename(Var f:filevar; s:anystring) – ім’я файлу f замінюється іменем, заданим рядком s. Нове ім’я не повинно збігатися з іменами вже існуючих файлів.
Reset(Var f:filevar) – відкриває вже існуючий файл f. Вказівник файлу встановлюється на перший елемент. Якщо такого файлу не існує, то виникає помилка введення-виведення.
Rewrite(Var f:filevar) – утворює новий файл f. Якщо такий вже існував, то він очищається. Вказівник файлу знаходиться на початку файлу.
Seek(Var f:filevar; n:Integer) – встановлює вказівник файлу f на n-й елемент. Перший елемент має номер 0, другий – 1 і т.д.
Write(Var f:filevar; a1,….,an:filetype) – запис у файл f значень змінних із списку. Список повинен складатися хоча б з однієї змінної, інакше не виконуватимуться ніякі дії. Після виконання процедури вказівник файлу міститься після останнього записаного елемента. Якщо тип деякої змінної зі списку не збігається з типом елементів, то фіксується помилка введення.
Процедури Flush, Read, Seek, Write застосовуються лише до відкритих файлів, а процедури Erase і Rename – до закритих файлів. Порушення цього правила призводить до виникнення помилки введення-виведення
Функції
Eof(Var f:filevar):Boolean – має значення True, якщо вказівник файлу міститься на мітці кінця файлу, і False – в іншому випадку.
FilePos(Var f:filevar):Integer – визначає номер елемента, в якому міститься вказівник файлу.
FileSize(Var f:filevar):Integer– визначає кількість елементів у файлі.
Усі три функції повинні застосовуватись до відкритих файлів.
