Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгор_ТХТК_пособие.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.6 Mб
Скачать

8.1 Текстовые файлы

Текстовый файл – это файл, состоящий из элементов, являющихся строками. Каждая строка в текстовом файле завершается маркером конца строки. Текстовый файл завершается маркером конца файла. Для описания файловых переменных текстового типа используется стандартный идентификатор Text.

Процедуры обработки текстовых файлов

Append (f) - открывает существующий файл для добавления информации в конец файла. Указатель текущего компонента файла устанавливается на конец файла.

SetTextBuf (f, buf, size) – установка размера буфера. F : text, size : word; buf – тип задается. Должна выполнятся перед открытием файла f. Буфер размещается в переменной buf. Эта процедура служит для увеличения или уменьшения буфера ввода-вывода. Автоматическое значение размера буфера для текстовых файлов равно 128 байт.

Flush (f) – освобождение буфера вывода и запись информации в файл.

Read (f, ch) – чтение символа из файла и присваивание его значения символьной переменной ch.

Readln (f, s) – чтение строки из файла и присваивание ее строковой переменной s. При этом непрочитанная часть строки, включая признак конца строки, пропускается.

Write (f, ch) – запись символьной информации ch в файл.

Writeln (f, s) – запись строки s в файл и завершение выводимой информации признаком конца строки.

Функции обработки текстовых файлов

Eoln (f) – конец строки файла.

SeekEof (f) – конец файла.

SeekEoln (f) – конец строки файла.

Пример 8.1 Ввести в ЭВМ с клавиатуры n строк текста и записать их в текстовый файл. Имя набора данных необходимо также задать с клавиатуры.

Program SozdText;

Var

Tx : Text; {Имя текстового файла}

FilName : String;{Имя набора данных}

Stroka : String;{Строка текста}

I,n : Integer; {Вспомогательные переменные}

Begin

Writeln(’Введите имя набора данных’);

Readln (FilName);

Assign(Tx,FilName);

Rewrite (Tx);

Writeln (’Введите количество строк текста’);

Readln(n);

Writeln (’Введите строки’);

For i:=1 to n do

Begin

Readln (Stroka); {Ввод строки с клавиатуры}

Writeln(Tx,Stroka); {Запись в файл}

End;

Close(Tx);

End.

Работа с существующим файлом обычно включает в себя операции открытия его для чтения, и затем считывания из него записей, пока не появится признак "Конец файла" – Eof(Файл). Поэтому соответствующие Паскаль-программы содержат циклы вида

While Not Eof (Файл) do

Begin

Readln(Файл, Запись);

- - - - - - - -

End;

Пример 8.2 Вывода на экран содержимого файла. Рассмотрим ее на примере набора, созданного в предыдущем пункте.

Program VivodFile;

Var

Tx : Text;

FilName,Str : String;

KolStr : Integer;

Begin

Writeln(’Введите имя НД ’);

Readln(FilName);

Assign(Tx,FilName);

Reset(Tx,FilName);

KolStr := 0;

Writeln(’Содержимое набора’);

While Not Eof(Tx) do

Begin

Readln (Tx,Str);

KolStr := KolStr+1;

Writeln(Str); {вывод на экран}

End;

Writeln(’Количество строк в наборе данных - ’, kolstr);

Close(Tx);

End.