- •Передмова
- •Тема 1: Правила техніки безпеки при роботі з комп’ютером
- •Тема 2: Алфавіт. Ідентифікатори. Константи. Вирази
- •Тема 3: Загальна структура і розділи Pascal-програми
- •Тема 4: Введення і виведення у Pascal-і. Форматоване виведення
- •Тема 5: Прості (скалярні) типи данних
- •Тема 6: Завантаження середовища Турбо Паскаль. Функціональні клавіші
- •Тема 7: Меню опції
- •Тема 8: Вираження і пріоритет операцій. Стандартні математичні функції та процедури
- •Тема 9: Умовний оператор. Вкладений умовний оператор
- •Тема 10: Оператор вибору
- •Тема 11: Оператори циклу. Оператор циклу з параметром
- •Тема 12: Оператор циклу з перед- і з постумовою
- •Тема 13: Складні типи. Масиви
- •Тема 14: Багатомірні масиви
- •Тема 15: Пошук і сортування елементів масиву. Класи алгоритмів сортування
- •Тема 16: Динамічна пам'ять. Адреси і покажчики
- •Тема 17: Оголошення покажчиків, виділення та звільнення динамічної пам’яті
- •Тема 18: Процедури та функції для роботи з динамічною пам’яттю
- •Тема 19: Символьний тип даних. Упаковані масиви
- •Тема 20: Процедури та функції для обробки рядків
- •Тема 21: Структурований тип даних - безліч
- •Тема 22: Структурований тип даних – записи
- •Тема 23: Опис файлових змінних. Обробка типізованих файлів
- •Тема 24: Послідовний та прямий доступ до файлів
- •Тема 25: Обробка не типізованих файлів
- •Тема 26: Робота з текстовими файлами
- •Тема 27: Типізовані константи
- •Тема 28: Поняття та робота з процедурами та функціями
- •Тема 29: Використання модуля crt. Програмування клавіатури
- •Тема 30: Використання модуля crt. Текстове виведення на екран. Програмування звукового генератора
- •Тема 31: Графічні можливості tp 7.0. Використання бібліотеки Graph
- •Тема 32: Бібліотечні модулі користувача
- •Тема 33: Основні принципи ооп. Створення об’єктів. Використання об’єктів
- •Список літератури
- •Додаток а (довідковий) Основні алгоритми обробки масивів
- •Додаток б (довідковий) Питання перевірки знань з теорії
- •Додаток в (довідковий) Поширені коди клавіш
- •Додаток д (довідковий) Коди сканування клавіатури
Тема 26: Робота з текстовими файлами
Текстові файли складаються з рядків довжиною від 0 до 256 символів. Для опису використовується стандартний тип Text:
var ім'я файлової змінної : text;
Після опису всі операції з текстовим файлом виконуються за допомогою файлової змінної. Для обробки текстових файлів використовують стандартні процедури: Assign; Reset; Rewrite; Close; Read; ReadLn; Write; WriteLn; Eoln; Eof; Append.
Процедура
Append(файлова змінна);
відкриває текстовий файл для розширення тобто наприкінці файлу можна додати текст.
За причини того, що число елементів файлу не задається, в Pascal введена ознака кінця файлу. Ознакою кінця файлу є наявність символу з кодом 26 (Ctrl+Z). Для визначення файлового покажчика використовується стандартна функція EoF. Викликається вона з одним параметром – файловою змінною:
EoF(файлова змінна);
і повертає логічне значення True, якщо досягнуто кінець файлу і False – у протилежному випадку. Наприклад, у циклі:
while not eof (файлова змінна) do
begin
…
end;
циклічна частина, укладена в операторні дужки, буде повторюватися доки не буде досягнуто кінця файлу.
Дані у файлі зберігаються в рядках. Для визначення кінця рядка використовуємо оператор циклу
while not eoln (файлова змінна) do
begin
…
end;
Приклад 1. Вивести латинський алфавіт у файл abc.txt.
var t : text;{t – файлова змінна типу text}
i: char;
begin
assign (t,’c:\tp\pasfiles\abc.txt’); {встановлює зв'язок файлової змінної t із} {зовнішнім файлом abc.txt}
rewrite(t);{використовуємо цю процедуру, тому що файлу abc.txt на} {диску не було}
for i := ’A’ to ‘Z’ do
write(t, i,’ ‘);{виведення латинського алфавіту в створений процедурою} {rewrite дисковий файл abc.txt}
close(t);
end.
Приклад 2. Написати програму, що формує файл, компоненти якого є цілими числами.
var f : file of integer;
i : integer;
begin
assign (f1,’c:\tp\pasfiles\primer1.dat’);
rewrite(f);
repeat
readln(i);
write(f, i)
until i = 99; {вихід з циклу при введенні числа 99}
close(f);
end.
Приклад 3. Читання з файлу. Мається файл primer1.dat цілих чисел. Визначити кількість нулів у ньому.
var f : file of integer;
i, n0 : integer;
begin
assign (f1,’c:\tp\pasfiles\primer1.dat’);
reset(f);
while not eof (f) do
begin
read (f, i);
if i=0 then n0 := n0+1;
end;
close(f);
writeln(‘у файлі primer1.dat ‘,n0,’нулів’);
end.
Приклад 4. Мається файл abc.txt з англійським алфавітом. Роздрукувати букви алфавіту і їхню кількість.
var f : text;{t – файлова змінна типу text}
s : char; sum : byte;
begin
assign (f,’c:\ tp\ pasfiles\ abc.txt’);
reset(f);
while not eof (f) do
begin
read (f, s);
write(s);
if s <> ’ ’ then {якщо символ не пробіл, то}
sum := sum+1;
end;
close(f);
writeln;
write(‘в англійському алфавіті ‘,sum,’букв’);
end.
Приклад 5. Створити текстовий файл primer2.txt з довільним текстом.
var f : text;
Str : string;
begin
assign (f1,’c:\tp\pasfiles\primer2.txt’);
rewrite(f);
repeat
readln(str);
if str<>’ ’ then {перевірка: якщо рядок не порожній,}
writeln(f, str); {то писати у файл;}
until Str=‘ ’; {якщо введений рядок порожній, то вихід з циклу}
close(f);
end.
Приклад 5. Мається текстовий файл primer2.txt. Додати текст у його кінець.
var f : text;
str : string;
begin
assign (f,’c:\tp\pasfiles\primer2.txt’);
append(f);
repeat
readln(str);
if str<>’ ’ then
writeln(f, str);
until Str=‘ ’;
close(f);
end.
Питання для контролю.
-
Представник файлу в Pascal-програмі.
-
Поняття поточного покажчика.
-
Оголошення файлу в Pascal-програмі.
-
Процедура Assign і виконувана нею операція.
-
Процедури Reset і Rewrite, місце в програмі і виконувані ними операції.
-
Процедура Close і виконувані нею операції.
-
Зчитування даних із зовнішнього файлу. Приклад.
-
Запис даних у файл. Приклад.
-
Текстові файли. Опис текстового файлу.
-
Процедури, застосовувані при роботі з текстовими файлами.
-
Функції EoF і EoLn, їхнє застосування.