- •Тема 5. Створення та оброблення файлів даних
- •Порядок виконання операцій при роботі з файлами
- •Процедури роботи з каталогами
- •Процедури перейменування і знищення файлів
- •Процедури і функції для роботи з файлами
- •Типовані файли
- •Процедури і функції для роботи з типованими файлами
- •Текстові файли
- •Процедури і функції для роботи з текстовими файлами
- •Нетиповані файли
- •Індивідуальні завдання Створення та оброблення типованих файлів
- •Створення та оброблення текстових файлів
Текстові файли
Текстові файли зв’язуються з файловими змінними, що належать стандартному типу Text.Текстові файли призначені для зберігання текстової інформації. У таких типах файлах зберігаються початкові тексти програм. Компоненти (записи) текстового файла можуть мати змінну довжину, що суттєво впливає на характер роботи з ними.
Текстовий файл – це сукупність рядків змінної довжини. Доступ до кожного рядка можливий лише послідовно, починаючи з першої. При створенні текстового файла у кінці кожного запису (рядка) ставиться спеціальна ознака Eoln.
Текстові файли є різновидом файлів типу file of char .
Для опису текстових файлів використовується тип Text.
Var TextFile: Text
У текстових файлах окрім ознаки кінця файла Eof використовується ще ознака кінця рядка Eoln. Ознака Eoln являє собою послідовність двох символів коду ASCII - символа з кодом 13 (“возврат каретки”) і символа з кодом 10 (“перевод строки”). Ознака Eof представляється кодом 26 стандарта ASCII.
Текстовий файл можна представити як сторінку книжки, де в кінці кожної сторінки стоїть Eoln.
Для читання використовуються процедури:
Read([f,]<список змінних>)
та
Readln([f,] <список змінних>)
Для запису використовуються процедури:
Write([f,] <список змінних>)
та
Writeln([f,] <список змінних>)
Тут f – файлова змінна, яка повинна бути оголошена, як FILE OF і зв’язана з ім’ям файла процедурою ASSIGN. <список змінних> – список введення (виведення); послідовність з однієї або кількох змінних.
Процедури і функції для роботи з текстовими файлами
Для текстових файлів додатково до інших типів допускається використання таких процедур та функцій:
Eoln(f) - повертає TRUE, якщо у вхідному текстовому файлі досягнутий маркер кінця рядка. Якщо параметр відсутній, функція перевіряє стандартний файл INPUT.
SeekEof(f) - повертає для текстового файла стан Eof (кінець файла). Якщо параметр відсутній, функція перевіряє стандартний файл INPUT.
SeekEoln(f) - повертає для текстового файла стан Eoln (кінець рядка). Якщо параметр відсутній, функція повертає стандартний файл INPUT.
SetTextBuf(f)-призначає для текстового файла буфер введення-виведення.
Приклад створення на диску текстового файла і запис в нього тексту.
Program Write_txt_file; {Запис текстового файла на диск}
Type fil=text;
Var F1:fil;
Name: string[12];
Txt: string;
Begin
Write(‘ Введіть ім’я файла для запису текста ‘);
Readln(Name);
Writeln;
Assign(F1,Name);
Rewrite(F1);
Writeln(‘ Введіть текст для запису (для закінчення натисніть Enter ) :’);
Writeln;
Repeat
Write(‘:’);
Readln(Txt);
Writeln(F1,Txt);
Until Txt=’ ‘;
Close(F1);
Writeln;
Writeln(‘ Введення закінчене, натисніть Enter’);
Readln;
End.
Приклад підрахунку загальної кількості символів у файлі і результат ділиться на 40000-таким чином можна оцінити об’єм рукопису у видавничих сторінках.
Var
f: text;
s: string;
const
sum:longint=0; { Змінна для визначення кількості символів}
begin
Write(‘Ім’я фвйла:’);
Readln(s); { Введення імені файла}
Assign(f,s);
Reset(f); {Відкриття файла}
While not EOF(f) do {Підрахунок кількості символів у файлі}
Begin
ReadLn(f,s);
Inc(sum,Length(s))
End;
Close(f); {Закриття файла}
Writeln(‘=’,sum/40000:6:2,’ вид. cтор.’)
End.