Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль.doc
Скачиваний:
58
Добавлен:
07.06.2015
Размер:
1.21 Mб
Скачать

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

Это файлы, состоящие из строк символов, которые заканчиваются символом "конец строки". Текстовый файл определяется описателем Text. В разделе Var это записывается так:

Var

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

Пример. Var

Dan, Datain : Text;

Примером текстовых файлов являются стандартные файлы Input и Output. Причем из файла Input можно только читать, а в файл Output – только писать.

Для чтения и записи в текстовые файлы используются стандартные операторы:

Read, и Write,

Readln и Writeln.

Общий вид операторов ввода-вывода для текстовых файлов следующий:

Read(файл, запись);

Readln(файл, запись);

- - - -

Writeln(файл, запись);

где файл — имя файла,

запись — имя данного, которое читается (записывается) из файла. Это может быть символ, строка или число.

Каждый оператор Readln читает очередную запись файла, а Writeln – пишет запись в него. После этого указатель считывания-записи автоматически перемещается на следующую запись.

Основными задачами при работе с файлами являются создание нового и обработка уже существующего файла.

21.1.1. Создание текстового файла

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

Алгоритм

1.1. Ввести Имя_Набора_Данных

1.2. Связать Файл с Набором_Данных

1.3. Открыть Файл для записи

2.1 Ввести количество строк (n)

2.2. Для номера строки (i) от 1 до n выполнить

а) ввести строку;

б) переписать в файл строку

3. Закрыть файл

4. Закончить

Программа для этого алгоритма будет иметь вид

Program SozdText;

Var

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

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

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

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

Begin

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

Readln (FilName); {п. 1.1}

Assign(Tx,FilName); {п. 1.2}

Rewrite (Tx); {п. 1.3}

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

Readln(n); {п. 2.1}

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

For i:=1 to n do {п. 2.2}

Begin

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

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

End;

Close(Tx); {п. 3}

End.

21.1.2. Работа с существующим текстовым файлом

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

While Not Eof (Файл) do

Begin

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

- - - - - - - -

End;

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

Алгоритм

1.1. Ввести Имя_Набора_Данных.

1.2. Связать Файл с Набором_Данных.

1.3. Открыть Файл для чтения.

2.1. Количество_строк = 0.

2.2.Пока не конец файла выполнять

2.2.1. Считать из Файла строку;

2.2.2. Количество_строк = Количество_строк +1;

2.2.3. Вывести строку на экран;

2.3. Вывести Количество_строк.

2.4. Закрыть файл.

3. Закончить.

Программа будет иметь вид

Program VivodFile;

Var

Tx : Text;

FilName,Str : String;

KolStr : Integer;

Begin

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

Readln(FilName); {п. 1.1}

Assign(Tx,FilName); {п. 1.2}

Reset(Tx,FilName); {п. 1.3}

KolStr := 0; {п. 2.1}

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

While Not Eof(Tx) do {п. 2.2}

Begin

Readln (Tx,Str);

KolStr := KolStr+1;

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

End;

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

Close(Tx); {п. 2.4}

End.