Archive / 1_семетр-1 / Лабораторные работы / Labtp_1s / text_file_use
.docМетодичні поради до підготовки і виконання лабораторних робіт
з використанням текстових файлів.
Алгоритм роботи.
-
Початок
-
Введення з клавіатури імені файлу Readln(NameF);
-
Прив'язка файлової змінної до імені файлу. Assign(f,NameF)
-
Відкриття файлу OpenFilE(F)
-
Виведення на екран меню з пропозиціями:
-
Перегляд файлу на екрані.
-
Занесення даних у файл.
0. Вихід
-
Вибір користувачем позиції меню.
-
Виведення файлу на екран, якщо вибрано позицію 1. OutFile (var f: Text);
-
Занесення даних до файлу, якщо вибрано позицію 2. WriteFile (x1, x2, x, f);
-
Повернення до п.5 (Виведення меню), якщо вибрано іншу, не нульову позицію.
-
Кінець, якщо вибрано позицію 0.
-
Процедура створення текстового файлу.
Procedure OpenFile (f: Text);
Begin
{$I-}
Reset (f);
{$I+};
If IOresult=0 then Close (f)
Else
Begin
{$I-}
Rewrite (f);
{$I+};
If IOresult=0 then
Begin
writeln('Створено новий файл',NameF);
Close (f);
End
Else
Begin
Writeln ('Відкрити файл не можливо');
Delay (1500);
Halt;
End
End
End;
* {I-}, {I+} - директиви компілятора, які виключають і включають відповідно перевірку коректності операцій введення-виведення.
Примітка: Якщо стоїть задача створити текстовий файл, що вміщує вхідні дані до виконання роботи (наприклад файл, що вміщує текст рядка, або банк даних для елементів записного типу, то такий файл порбно створювати у будь-якому текстовому редакторі (наприклад у редакторі Турбосередовища), шляхом набору компонент через прогалину. А читати інформацію з файлу потрібно використовуючи процедури Read(f,<var>) та Readln(f,<var>) відповідно у поточному рядку і при переході до наступного рядка.
-
Занесення даних в текстовий файл заново.
Procedure WriteFile (x1, x2, x: real; var f: Text);
Begin
Rewrite (f);
Writeln (f, x1: 5:2,x2: 5:2,x: 8:4);
Close (f);
End;
-
Занесення даних в текстовий файл,.в кінець існуючого.
Procedure AppFile (x1, x2, x: real; var f: Text);
Begin
Append (f);
Writeln (f, x1: 5:2,x2: 5:2,x: 8:4);
Close (f);
End;
-
Виведення рядків текстового файлу на екран у тому ж порядку, в якому вони записувались процедурою занесення даних.
Procedure OutFile (f: Text);
Const k=20;
Var x1, x2, x: real; ch: char; I: byte;
Begin
Reset (f);
Clrscr;
I: =0;
While not Eof (f) do {Читання даних з файлу і виведення на екран}
Begin
Readln (f, x1, x2, x);
Writeln (x1: 5:2,x2: 5:2,x: 5:2);
Inc (I);
If (I mod k) = 0 then
Begin
Write ('Press any key.');
Repeat until Key Pressed;
Ch: =readkey;
End;
End;
Close (f);
End;
* Змінна I введена для того, щоб зупиняти екран після кожних двадцяти (k=20) рядків даних (якщо до файлу занесена, наприклад, таблиця даних), виведення продовжується на чистому екрані після натиску на будь - яку клавішу для продовження.