Самостійна підготовка до виконання лабораторної роботи
Лабораторна робота №8
ТЕМА: Опрацювання файлів послідовного
Доступу у ТР
МЕТА: Ознайомитись з можливостями мови Турбо Паскаль (ТР) в опрацюванні файлів.
ЗНАТИ:особливості опрацювання текстових файлів у ТР. Вивчити стандартні процедури і функції опрацювання файлів.
ВМІТИ:вивчений матеріал застосовувати при створенні власних нескладних програм опрацювання файлів.
ОБЛАДНАННЯ:технічне забезпечення: ПЕОМ, програмне забезпечення: система програмування Turbo Pascal 6.0.
КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
Текстовими є файли, в яких:
- інформація подається у текстовому вигляді за допомогою символів у коді ASCII;
- вміст може поділятися на рядки. Ознакою кінця рядка є символ #13 (код 13 – CR). Він може бути об’єднаний з символом переведення рядка #10 (код 10 – LF);
- кінець файла позначається явно символом ^Z (код 26);
- при запису чисел, рядків і логічних значень вони перетворюються у символьний (текстовий) вигляд;
при читанні чисел і рядків вони автоматично перетворюються з текстового подання у машинне.
Таблиця 3. Процедури і функції для роботи
З текстовими файлами
Назва | Призначення |
Assign(F, Str) | Надання імені текстовому файлу. |
Rewrite(F) | Відкриття нового текстового файла для запису. |
Reset(F) | Відкриття існуючого текстового файла для читання. |
Append(F) | Відкриття існуючого текстового файла для дописування інформації. |
Close(F) | Закриття текстового файла. |
Read(F, Ch) | Зчитування символу Ch з текстового файла F. |
Write(F, Ch) | Запис символьної змінної Ch у файл F. |
Readln(F, Str) | Читання з файла F рядка Str. |
Writeln(F, Str) | Запис рядка Str у файл F. |
Eoln(F) | Перевірка кінця рядка або кінця файла |
SeekEoln(F) | Функція повертає TRUE, якщо досягнуто кінець рядка або кінець файла, або перед ними стоять лише пропуски і (або) символи табуляції (#9), інакше – FALSE |
SeekEof(F) | Функція повертає TRUE, якщо досягнуто кінець файла, або перед ними стоять лише пропуски, ознаки кінців рядків і (або) символи табуляції. |
Для роботи з текстовим файлом необхідно:
1) Визначити файлову змінну (змінну логічного файла):
Var F : Text;
З текстового файла можна зчитувати інформацію і записувати інформацію у файл. Нові дані завжди записуються в кінець файла.
2) Після визначення файлової змінної необхідно пов’язати її з іменем фізичного файла на диску. Для цього призначена процедура
Assign(Var Файлова_змінна : Файловий_тип; Ім’я_файла : String);
Приклад. Assign(f, ‘ABC.txt’); Assign(f, ‘c:\DOC\klm.doc’);
Readln(Filname); Assign(f, Filname);
3) Після пов’язування файлової змінної з фізичним файлом необхідно відкрити файл, тобто підготувати його для опрацювання. Текстовий файл можна відкривати трьома способами:
а) Reset(Var Файлова_змінна : Text); – відкриває текстовий файл для зчитування з нього інформації;
б) Rewrite(Var Файлова_змінна : Text); – відкриває файл для запису. Ця процедура служить для створення нового файлу. Якщо файл з таким ім’ям вже існує, дані з нього будуть знищені;
в) Append(Var Файлова_змінна : Text); – відкриває текстовий файл для дописування в нього інформації.
Приклад. Rewrite(f); Reset(f); Append(f);
1) Для зчитування даних з текстового файла використовуються процедури:
Read(Var Файлова_змінна: Text; Змінна1 [, Змінна2,…, ЗміннаN]: Char); – читання з файла даних символьного типу;
Readln(Var Файлова_змінна: Text; Змінна1: String); – читання з файла рядкових даних;
Readln(Var Файлова_змінна: Text); – перехід на новий рядок у файлі. При цьому пропускаються всі символи, включаючи пропуски і маркер кінця рядка, тобто відбувається перехід на новий рядок. Така форма запису процедури може використовуватися для підрахунку кількості компонентів у файлі:
St := 0; {лічильник рядків}
While not EOF(F) do
begin
ReadLn(F); {пропуск рядка}
St := St +1
end;
Write(‘У файлі знаходиться ’, St:4, ‘ рядків’);
2) Для запису даних у текстовий файл використовуються процедури:
Write(Var Файлова_змінна: Text; Змінна1 [, Змінна2,…, ЗміннаN]: Char); – запис до файла даних символьного типу;
Writeln(Var Файлова_змінна: Text; Змінна1: String); – запис до файла рядкових даних;
Writeln(Var Файлова_змінна: Text); – запис у файл порожнього рядка. Застосовується для запису у файл порожнього рядка, тобто записується тільки маркер кінця рядка. Ця властивість використовується для внесення у текстові документи рядків-пропусків. Наприклад, документ, що зберігається у файлі, починається з 5 рядків-пропусків. Відповідний фрагмент програми може виглядати так:
for i :=1 to 5 do WriteLn(F);
Якщо не використовується і файлова змінна F: WriteLn; то за замовчуванням розуміється стандартний файл виведення на екран Output і виконується пропуск рядка. Наприклад, якщо при виведенні на екран треба пропустити 7 рядків, можна записати:
for i :=1 to 7 do WriteLn
3) Для визначення кінця рядка у файлі і кінця файла призначені функції:
EOLn(Var Файлова_змінна: Text): Boolean; – повертає TRUE, якщо досягнуто кінець рядка або кінець файла, інакше – FALSE
EOF(Var Файлова_змінна: Text): Boolean; – повертає TRUE, якщо досягнуто кінець файла, FALSE в інших випадках.
4) Після опрацювання файла його необхідно закрити. Для цього призначена процедура
Close( Var Файлова_змінна: Text);
Схема створення текстового файла:
1) оголосити файлову змінну як текстову;
2) надати файлу ім’я (Assign);
3) відкрити файл для запису (Rewrite);
4) підготувати рядок для запису (наприклад, ввести з клавіатури);
5) записати рядок у файл (Writeln);
6) закрити файл (Close).
Пункти 4) і 5) повторюються необхідну кількість разів.
Схема опрацювання текстового файла:
1) надати файлу ім’я (Assign);
2) відкрити файл для читання (Reset);
3) прочитати елемент файла (Readln);
4) опрацювати елемент (наприклад, надрукувати);
5) закрити файл (Close).
Пункти 3) і 4) повторюються необхідну кількість разів.
Схема коректування текстового файла:
1) надати файлу ім’я (Assign);
2) відкрити файл для внесення нових елементів (Append);
3) записати новий елемент (Writeln);
4) закрити файл (Close).
Пункт 3) повторюється необхідну кількість разів.
САМОСТІЙНА ПІДГОТОВКА ДО ВИКОНАННЯ ЛАБОРАТОРНОЇ РОБОТИ
1. Записати в зошит тему, мету, обладнання, практичні завдання свого варіанту (вибирається згідно номеру комп’ютера.) .
2. По літературі до лабораторної роботи з’ясувати контрольні теоретичні запитання.
3. По інструкції до лабораторної роботи ознайомитись з порядком виконання роботи.
ПОРЯДОК ВИКОНАННЯ РОБОТИ:
1. Ввімкнути комп’ютер.
2. Запустити Turbo Pascal.
3. Виконати відповідні практичні завдання з варіантів (варіант вибирається згідно номеру комп’ютера) для самостійного виконання. Виконання завдання всіх варіантів передбачає попереднє створення файла на диску (файл створюється з указаної користувачем кількості рядків або до введення указаної ознаки закінчення).
Варіант 1
1. Дано текстовий файл, розбитий на рядки. Надрукувати всi рядки, що мають довжину, рiвну довжинi останнього рядка.
Варіант 2
1. Дано текстовий файл f. Переписати у файл g всі рядки файла f, що містять більше 30 символів.
Варіант 3
1. Дано текстовий файл, розбитий на рядки. Надрукувати рядки, що мають непарну довжину, пiдрахувавши їх кiлькiсть.
Варіант 4
1. Дано текстовий файл f. Отримати всі рядки файла f, фрагментом яких є рядок s.
Варіант 5
1. Дано текстовий файл f. Переписати у файл g всі рядки файла f, кожний рядок тексту надрукувати в зворотному порядку, вставляючи в кінець рядка крапку.
Варіант 6
1. Дано текстовий файл, розбитий на рядки. Передостанню лiтеру кожного рядка замiнити на 'm'.
Варіант 7
1. Дано текстовий файл f. Переписати у файл g всі рядки файла f, що містять менше 40 символів.
Варіант 8
1. Дано текстовий файл f. Переписати елементи файла в файл g, вставляючи в початок кожного рядка літеру ‘о’. Порядок рядків повинен бути сбережений.
Варіант 9
1. Дано текстовий файл, розбитий на рядки. Надрукувати всі рядки, що складаються з шести лiтер.
Варіант 10
1. Дано текстовий файл f. Переписати в файл g всі рядки з f, в яких перша і остання літери однакові.
4. Показати викладачу виконані завдання на будь-якому носії інформації. Оформити лабораторну роботу згідно звіту до роботи.
5. Захистити роботу.
ПИТАННЯ ДЛЯ САМОСТІЙНОЇ РОБОТИ
1. Яка структура даних ТР називається файлом?
2. Як оголошуються файли у Паскаль-програмах? Наведіть приклади.
3. Які особливості мають текстові файли?
4. Якими способами можна відкрити файл?
5. Як додати елемент до файлу?
6. Як зчитати елемент з файлу?
7. Як створити і внести дані в новий файл?
8. Як відкрити файл і вивести його елементи на екран?
9. Як додати до файлу нові рядки?
ЛІТЕРАТУРА
- Абрамов С.А. и др. Задачи по программированию. – М.: Наука, 1988. – 224 с.
- Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык паскаль. – М.: Наука, 1988. – 320 с.
3. Грогоно П. Программирование на языке Паскаль. – М.: Наука, 1982.
- Йенсен К., Вирт Н. Паскаль: руководство для пользователя и описание языка. – М.: Финансы и статистика, 1982.
- Рамський Ю.С., Цибко Г.Ю. Основи програмування (мовою Паскаль).Курс лекцій. Лабораторний практикум. – К.: НПУ імені М.П. Драгоманова, – 2004.
6. Пильщиков В.Н. Сборник упражнений по языку Паскаль. – М.: Наука, 1989. – 160 с.
ЗВІТ ДО РОБОТИ
1. Оформити лабораторну роботу в зошиті. Записати тему, мету, відповісти на питання для самостійної підготовки.
2. Виконати завдання згідно свого варіанту (варіант вибирається згідно номера свого комп’ютера).
3. Зробити висновок.