Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОП. Лаба №8.doc
Скачиваний:
3
Добавлен:
09.07.2019
Размер:
70.66 Кб
Скачать

Лабораторна робота №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, ‘ рядків’);

  1. Для запису даних у текстовий файл використовуються процедури:

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

  1. Для визначення кінця рядка у файлі і кінця файла призначені функції:

EOLn(Var Файлова_змінна: Text): Boolean; – повертає TRUE, якщо досягнуто кінець рядка або кінець файла, інакше – FALSE

EOF(Var Файлова_змінна: Text): Boolean; – повертає TRUE, якщо досягнуто кінець файла, FALSE в інших випадках.

  1. Після опрацювання файла його необхідно закрити. Для цього призначена процедура

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) повторюється необхідну кількість разів.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]