САМОСТІЙНА ПІДГОТОВКА ДО ВИКОНАННЯ ЛАБОРАТОРНОЇ РОБОТИ

Лабораторна робота №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. Як додати до файлу нові рядки?

 

ЛІТЕРАТУРА

  1. Абрамов С.А. и др. Задачи по программированию. – М.: Наука, 1988. – 224 с.
  2. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык паскаль. – М.: Наука, 1988. – 320 с.

3. Грогоно П. Программирование на языке Паскаль. – М.: Наука, 1982.

  1. Йенсен К., Вирт Н. Паскаль: руководство для пользователя и описание языка. – М.: Финансы и статистика, 1982.
  2. Рамський Ю.С., Цибко Г.Ю. Основи програмування (мовою Паскаль).Курс лекцій. Лабораторний практикум. – К.: НПУ імені М.П. Драгоманова, – 2004.

6. Пильщиков В.Н. Сборник упражнений по языку Паскаль. – М.: Наука, 1989. – 160 с.

 

ЗВІТ ДО РОБОТИ

1. Оформити лабораторну роботу в зошиті. Записати тему, мету, відповісти на питання для самостійної підготовки.

2. Виконати завдання згідно свого варіанту (варіант вибирається згідно номера свого комп’ютера).

3. Зробити висновок.