Если это переменная (переменные) типа char, то из файла считывается символ и присваивается переменной, затем считывается следующий символ и присваивается следующей переменной – и так до тех пор, пока всем переменным типа char, указанным при вызове процедуры Read, будут присвоены считанные из файла значения. (При вводе с клавиатуры между вводимыми значениями требуется вводить некоторый разделитель – пробел, символ табуляции (клавиша <Таb>) или конец строки (клавиша <Enter>). Если очередной считанный символ окажется маркером конца строки EoLn, считывание будет продолжено из новой строки. Если очередной считанный символ окажется маркером конца файла, то выполнение процедуры будет прекращено.
Считывание значений типа string.
Если это строковая переменная (переменные), то из файла будут считываться все символы до ближайшего маркера конца строки. Если длина считанной строки превзойдет допустимую для значений типа string величину (255 символов), все оставшиеся до конца строки байты отбрасываются. Считывание нескольких строк подряд следует производить неоднократным обращением к процедуре Readln.
Считывание числовых значений
Если это значение типа integer или real, процедура Read будет пропускать любые пробелы, символы табуляции или маркеры конца строки, предшествующие числовой строке. Когда будет обнаружена первая значащая цифра, процедура Read начнет формировать числовое значение, пока не встретится один из перечисленных символов (пробел, символ табуляции или маркер конца строки). Считанная таким образом последовательность цифр рассматривается как символьное представление соответствующего числа, и полученное значение присваивается соответствующей переменной. Если числовая строка не соответствует ожидаемому формату, будет выдано сообщение об ошибке ввода/вывода. Следующая процедура Read начнет считывание с пробела, символа табуляции или маркера конца строки, которым была завершена предыдущая числовая строка.
4)
Кроме подпрограмм, осуществляющих ввод/вывод, имеется функция, которая осуществляет контроль за вводом/выводом.
IOResult() возвращает код ошибки, возникшей при выполнении последней операции ввода/вывода. Если ошибки не было, функция возвращает нуль.
Для того чтобы контролировать ошибки ввода/вывода с помощью функции IOResult, должен быть выключен автоконтроль (директива компилятора {$1-}).
Примеры программ.
Пример 1: Программа, печатающая свой собственный текст.
program type_file;
uses crt;
var f:text; s:string;
begin
clrscr;
assign(f,'t_f.pas');
reset(f);
while not eof(f) do
begin
readln(f,s);
writeln(s)
end;
close(f)
end.
Пример 2: Программа, считывающая целые числа из текстового файла и находящая максимум этих чисел (максимум выводится на экран).
program text_chisla;
var f:text; x,max:integer;
begin
assign(f, 't_c.txt');
reset(f);
read(f,max);
while not eof(f) do
begin
read(f,x); writeln(x);
if x>max then max:=x
end;
writeln('max=',max);
readln
end.
Пример 3: То же самое, но вместо файловой переменной используется стандартная файловая переменная input.
program text_chisla;
var x,max:integer;
begin
assign(input,'t_c.txt');
reset(input);
read(max);
while not eof(input) do
begin
read(x); writeln(x);
if x>max then max:=x
end;
writeln('max=',max);
readln
end.
Пример 4: Программа, считывающая целые числа с клавиатуры и сохраняющая их (и максимум) в текстовом файле. Здесь используется стандартная файловая переменная output.
program text_chisla;
var x,max:integer;
begin
assign(output,'t_c1.txt');
rewrite(output);
readln(x); write(x);max:=x;
while x<>0 do
begin
readln(x); write(x);
if x>max then max:=x
end;
writeln('max=',max);
close(output);
readln
end.
Пример 5: Программа считывает целые числа из одного файла, находит их максимум и
Сохраняет во втором файле числа, большие 10. Используются стандартные файловые переменные input и output.
program text_chisla;
var x,max:integer;
begin
assign(input,'t_c.txt');
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.