
- •Лекція №11. Записи і файли.
- •6.1. Записи.
- •Im: string[8];
- •Var k1,k2,k3:zap;
- •Im: string[8];
- •Var k1,k2,k3:zap;
- •With zap do оператор;
- •Im: string[8];
- •Var k1,k2,k3:zap;
- •Assign (f,’ff’);
- •Var f: file of integer;
- •Var t: text;
- •Var ff:file;
- •Var f:file;
- •Rewrite(ім’я_файлу);
- •Write (ім’я_файлу, список змінних);
- •Read(ім’я_файлової_змінної, список змінних);
- •Im:string[10];
- •Var s,s2:stud;
- •Var f1,f:file of real;
- •Тести для підсумкового контролю.
- •2. Чи вірно, що назви полів записів можуть співпадати з іменами змінних, констант та інших об’єктів програми, але не можуть співпадати з назвами полів інших записів?
- •X,y:real;
- •Var k:circ;
- •5. Чи можливо, прочитавши з файлу п’ятий елемент, зразу читати другий елемент?
Assign (f,’ff’);
Приведена команда призначає файловій змінній f файл ff на поточному диску.
Обробку будь-якого файлу в програмі можна починати тільки тоді , коли він підготовлений до роботи. Підготовка файлу до обміну відбувається шляхом виконання операції відкриття файлу. Використовуються різні модифікації цієї команди :
відкрити файл для перегляду - процедура reset(f);
відкрити файл для перезапису - rewrite(f);
відкрити файл для доповнення - append(f).
В програмі можна одночасно відкрити декілька файлів. Кожному відкритому файлу виділяється спеціальна область оперативної пам’яті, яка має назву буфером файлу. В зв’язку з тим, що обмін даними між зовнішніми пристроями та оперативною пам’яттю відбувається по блокам, розмір буферу, який виділяється файлу, дорівнює розміру фізичного блоку зовнішнього пристрою, який приймає (посилає) дані файлу. Частини буферу називають сегментами. Буфер файлу призначається для тимчасового зберігання даних, які зчитані в оперативну пам’ять або підготовлені для виведення на зовнішній пристрій.
Після роботи з файлами виконується операція закриття файлу - Close(f);. Ця команда припиняє роботу програми з файлом, виводить для вихідних файлів їх кінцеві мітки, вивільняє буферну пам’ять файлу.
Файлові змінні в мові Pascal.
В Pascal - програмі файл задається ім’ям файлової змінної. Файлові змінні в мові Pascal розподіляються на три види:
типізовані;
текстові;
нетипізовані.
Типізовані файли розглядаються як послідовність змінних деякого типу, заданого в опису файлової змінної. Описуються такі файли за допомогою службових слів file of, наприклад:
Var f: file of integer;
Базовий тип елементів записів файлу може бути будь-яким типом, крім файлового. Також в якості базового типу не допускається комбінований тип, одним з полів якого є файл.
Текстові файли - це послідовність символів, яка розбита на рядки, а рядок - це послідовність символів в явно позначеним кінцем. Описується такі файли за допомогою службового слова text:
Var t: text;
Хоча елементами тексту є символи, але цей тип відрізняється від типу file of char. В текстових файлах задаються спеціальні символи для позначення кінця рядка та кінця тексту.
Нетипізовані файли розглядаються як послідовність байтів та описують за допомогою службового слова file:
Var ff:file;
Всі перелічені види файлів відрізняються не стільки можливою складовою їх змінних, скільки набором процедур введення - виведення, які застосовуються до них.
Будь - яка робота з файловою змінною починається з того, що її ім’я зв’язується з відповідним фізичним файлом на носії інформації:
assign(ім’я_файлової_змінної, ‘ім’я_фізичного_файлу’);
Ім’я фізичного файлу є рядкова константа. Тому є можливість вводити його при виконання програми, що робить програму більш універсальною. Для цого в процедурі assign замість параметру ‘ім’я_фізичного_файлу’ запишемо рядкову змінну, значення якої будемо вводити з клавіатури:
Var f:file;
s: string;
begin
writeln(‘введіть ім’я файлу’);
readln(s);
Assign (f, s);
Для створення нового файлу або перезапису існуючого треба вказати режим роботи: