Ответы на экзаменационные вопросы № 1-34 по дисциплине "Программирование" (Средства модульного программирования в системе Турбо-Паскаль. ООП. Объекты в динамической памяти), страница 12

Для осуществления ввода информации в файл и вывода из файла в Turbo Pascal для текстовых и типизированных файлов предназначены процедуры Read и Write. Использование процедур Read и Write имеет особенности, зависящие от вида файла (текстовый это файл или типизированный).      

1)                   

Read (f,v1[,v2,…,vn]);         

f - файловая переменная, имеющая тип file of …          

v1,v2,…,vn – одна или несколько переменных, принадлежащих любому типу, за исключением файлового.          

Процедура Read для типизированных файлов обеспечивает считывание одного или нескольких компонентов файла и присвоение считанного значения (значений) некоторой переменной (переменным).   

2)       

Write (f,v1[,v2,…,vn]);        

f - файловая переменная, имеющая тип file of …          

v1,v2,…,vn – одна или несколько переменных, принадлежащих любому типу, за исключением файлового. Эти переменные должны иметь тот же тип, что и тип файла.           

Процедура Write для типизированных файлов обеспечивает присвоение значения (значений) некоторой переменной (переменных) компоненту (компонентам) файла.        

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

3)  

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

Замечание. Помимо Read и Write, для текстовых файлов применимы процедуры Readln и Writeln.  

При осуществлении стандартного ввода-вывода операторы выглядят так:  Read(a,b,c); или Write(x,y,'Вывод на экран');

В Turbo Pascal существует два стандартных идентификатора, играющие роль текстовых файловых переменных, ассоциируемых вместо файлов с конкретными физическими устройствами компьютера. Это идентификаторы INPUT и OUTPUT, которые ассоциируются соответственно с клавиатурой и экраном компьютера. Указанные файлы считаются постоянно открытыми (т.е. для них не нужно использовать процедуры Rewrite и Reset) и эти идентификаторы можно использовать в программах. Так, операторы ввода-вывода, о которых шла речь выше, можно представить и иначе:  

 Read(Input, a,b,c); или Write(Output, x,y,'Вывод на экран'); Первый оператор считывает из файла INPUT значения (т.е. позволяет ввести их с клавиатуры), которые будут присвоены переменным a,b,c. Второй оператор записывает в файл OUTPUT (т.е. выводит на экран) значения переменных x,y, а также строку текста. Первая и вторая пары операторов эквивалентны.

Иными словами, в процедурах Read и Write, когда требуется осуществить ввод с клавиатуры или вывод на экран, указывать файл INPUT или OUTPUT |необязательно. Если в процедуре Read или Write файл не указан, по умолчанию подразумевается файл INPUT или OUTPUT, в зависимости от того, ввод или вывод инициируется.  

Упомянутые стандартные файлы можно "переассоциировать". Для этого достаточно воспользоваться процедурой Assign, например:   

Assign (Output,'text.txt');     

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

Использование процедуры Read для текстовых файлов похоже на ситуацию с типизированными файлами, отличие заключается в том, что переменные V1, V2, ..., Vn, записанные в одной команде, могут принадлежать различным типам данных.  

Считывание значений типа char.