Процедура Writeln в Pascal

Помимо зарезервированного слова Write, для вывода сообщения на экран в Pascal используется процедура Writeln. Отличие процедуры Writeln от оператора Write заключается в том, что Writeln после вывода сообщения на экран переводит курсор на другую ...

Функции trunc, round в Pascal.

Для того чтобы в Паскаль можно было оперировать не только целыми числами, но и дробными существуют вещественные типы данных. Один из таких типов называется Real. В этом уроке мы рассмотрим 2 функции, которые производятся над дробными числами. Это ...

Div, Mod, сложение, вычитание в Pascal.

Помимо операций умножения и сложения, над целочисленными переменными производятся операции Div (операция целочисленного деления), Mod (вычисление остатка от целочисленного деления), операция вычитания «-».

Циклы и массивы

Отображение на экране значений двумерного массива.

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

Использование массивов и функций в качестве формального параметра.

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

Для текстовых файлов в Паскаль помимо процедур Read и Write определены процедуры Readln и Writeln. Дело в том, что при использовании строковой переменной с помощью процедуры Read можно считывать лишь первую строку файла в эту переменную.

Например, создадим текстовый файл «text.txt» и запишем в него 3 строки: «pascal», «admin» и «turbo».

tekstovihe fayjlih v paskalj

 А теперь запустите программу "file1" из первого урока, посвященного файлам.

tekstovihe fayjlih v paskalj.

Как видите, на экран вывелось одно слово «pascal», а слова «admin» и «turbo» не вывелись, т.к. они расположены во 2-й и 3-й строке. Для того чтобы из файла были прочитаны все строки необходимо  использовать цикл с признаком конца файла. Кроме того, процедура Read не приспособлена для считывания последовательности строк. Ввместо нее необходимо использовать процедуру Readln.

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




Program file5;
Uses crt;
var fl:text;
str:string;
begin
clrscr;
assign (fl, 'programs\text.txt');
reset (fl);
while not Eof(fl) do
begin
readln (fl,str);
write(str);
end;
close(fl);
readln
end.




В строке №9 записываем цикл. Функция Eof при чтении файла (при использовании процедуры Reset)  обозначает конец файла. Таким образом, цикл в строке №9 будет продолжаться до тех пор, пока не наступит конец файла (т.е. пока не будет прочитана последняя строка в файле). В цикле записано 2 операции (они заключаются в операторные скобки begin..end).

Строка №11. Первая операция в цикле – это операция чтения из файла и присвоение переменной «str» значения файловой переменной «fl». В результате работы процедуры Readln из файла будет прочитана первая строка, а указатель перейдет на начало второй строки. Таким образом, в цикле будут прочитаны все 3 строки.

Строка №12. Вторая операция - вывод значения переменной «str»на экран.

tekstovihe fayjlih v paskalj..

tekstovihe fayjlih v paskalj...

Как видите, на экран вывелись все 3 слова, записанные в текстовом файле «text.txt». Правда, все эти слова вывелись в одну строку. Для того чтобы они вывелись в 3-х строках необходимо вместо процедуры Write использовать процедуру Writeln (т.е. строка №12 должна иметь вид: writeln (str)). В результате получится:

tekstovihe fayjlih v paskalj....


Дополнение к материалу.

  • Процедура Readln производит чтение файла построчно. Т.е. сначала будет прочитана первая строка, затем 2-ая, затем 3-я. В нашем примере мы применяли цикл для чтения файла и вывода его содержимого на экран. Если мы уберем операторные скобки begin..end, то цикл будет действовать только на процедуру Readln (в строке №11),  а процедура Writeln выведет на экран не все слова, а лишь последнее слово(turbo), записанное в переменную «str».
  • В случае использовании оператора Read вместо оператора Readln в строке №11 произойдет зацикливание программы, так как она не сможет найти признак конца файла. Для остановки программы необходимо нажать Ctrl+Break

Предыдущая статья : Считывание информации из файла в целочисленную или вещественную переменную.

Оглавление : Уроки Паскаль. Файлы.

Следующая статья : Запись в текстовые файлы.


Комментарии  

 
+6 # Александр 29.01.2013 13:25
спасибо. очень полезная статья :D
Ответить
 
 
0 # 42 22.05.2013 14:33
Нормал
Ответить
 
 
+1 # Светлана 11.03.2017 12:02
:D :D Отлично! Спасибо! :-)
Ответить
 

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальФайлы в Паскаль