ТЕКСТОВЫЕ ФАЙЛЫ И РАБОТА С НИМИ.




Работа с данными типа файл.

Файл – это именованная область внешней памяти – приемник или источник информации.

Любой файл имеет три особенности:

1.есть имя => можно работать с несколькими файлами одновременно

2.содержит компоненты одного и того же типа, но сами компоненты могут быть любого типа, кроме типа файла или типа указателя

3.длина заранее не оговаривается.

 

Файловый тип или файловую переменную в программе можно задать одним из трех способов:

1. <имя> = file of <тип> типизированный файл,

2. <имя> = text текстовый файл,

3. <имя> = file нетипизированный файл.

 

Нас пока интересуют только текстовые файлы.

Var f: text;

 

В любой программе существуют по умолчанию два стандартных файла ввода – вывода, которыми мы пользовались: input и output.

 

Любые другие файлы в программе становятся доступны после выполнения процедуры связывания с конкретным внешним файлом.

 

Смысл этой операции состоит в том, что

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

2.указывается направление обмена информацией: чтение или запись.

 

assign(<файловая переменная>, <имя файла>);

здесь < файловая переменная > - идентификатор описанной выше переменной типа файла, < имя файла > - текстовое выражение (Если оно пустое, то подразумевается стандартный файл input или output в зависимости от направления обмена.)

 

Например:

Var

f: text;

Begin assign(f,’ABC.txt’); …….

 

Имя файла можно задавать в программе:

Var f:text;

st:string;

Begin writeln(‘Введите имя файла’);

readln(st);

assign(f,st); ………

После связывания файловой переменной с внешним файлом нужно указать направление передачи данных. Файл может быть открыт на чтение, на запись или на чтение и запись одновременно.

Ø Для чтения файл инициируется процедурой RESET.

Формат вызова такой

RESET(< файловая переменная> );

Если до этого вызова файловая переменная не была связана с конкретным внешним файлом, то будет попытка инициировать чтение из несуществующего файла.

Если файл текстовый, то процедуры, то процедуры write и writeln после RESET не разрешены.

Ø Для записи файл инициируется процедурой REWRITE.

Формат вызова такой

REWRITE(< файловая переменная> );

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


 

Ø Для записи в уже существующий файл с целью его расширения можно воспользоваться процедурой APPEND. Эта процедура применима только к текстовым файлам.

 

Формат вызова такой

APPEND(< файловая переменная> );

Если файл уже был инициализирован процедурами RESET или REWRITE, то он сначала будет закрыт, а потом снова открыт на запись.

 

Рассмотрим некоторые процедуры и функции для работы с файлами.

1. CLOSE(<файловая переменная>) - закрывает файл, но связь с файловой переменной сохраняется, поэтому можно снова открыть без ASSIGN. Обеспечивается сохранность всех записей файла.

2. RENAME(<файловая переменная>, <новое имя>) – переименовывает файл. Если он был открыт, то перед вызовом его необходимо закрыть.

3. ERASE(<файловая переменная>) – уничтожает файл. Перед выполнением файл необходимо закрыть.

4. EOF(<файловая переменная>):boolean. Функция тестирует конец файла и выдает значение true, если указатель находится в конце файла. При записи это означает, что добавление выполняется в конец файла, а при чтении, что файл исчерпан.

 


ТЕКСТОВЫЕ ФАЙЛЫИ РАБОТА С НИМИ.

Чаще всего в программах используются текстовые файлы, поэтому рассмотрим работу с ними более подробно.

Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу TEXT. Они предназначены для хранения текстовой информации. Компоненты текстового файла могут иметь переменную длину, откуда следуют особенности работы с ними. Текстовые файлы трактуются Паскалем как совокупность строк переменной длины. Доступ к каждой строке возможен только последовательно, начиная с первой. При создании текстового файла в конце каждой строки ставится специальный признак EOLN, а в конце всего файла – EOF. Чтобы поставить признак конца строки EOLN, нужно нажать клавишу <enter>, а для закрытия файла – сочетание двух клавиш <ctrl> + <z>. Эти признаки можно протестировать одноименными логическими функциями. Они выдают истину, если достигнуты конец строки и конец файла, соответственно.

 

При работе с текстовыми файлами используются процедуры:

1.READ – обеспечивает ввод символов, строк и чисел.

Формат вызова

READ(<файловая переменная>,<список ввода>)

или READ(<список ввода>), если применяется к файлу input.

<список ввода> - последовательность из 1 или нескольких переменных типа char, real, integer. Максимальная длина буфера ввода 127 символов.

Процедура ввода удобно устроена для ввода чисел, например, для ввода элементов массива можно написать:

 

Const N=1000;

var f: text;

a:array[1..N] of real;

i:integer;

Begin assign(f, ‘prog.dat’);

reset(f);

i:=1;

while not EOF(f) and (i<=N)

do begin read(f, a[i]); i:=i+1

end;

close(f);

…..

…..

End.

2.write – выводит информацию в текстовый файл.

Формат вызова

write(<файловая переменная>,<список вывода>), где

<файловая переменная> - переменная, описанная как text и связанная процедурой ASSIGN или write(<список вывода>), если вывод производится в стандартный файл output, то есть на экран.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-01-23 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: