7. Печать текстовых файлов.
Вывод файла на печать - один из завершающих этапов обработки данных, предоставляющий информацию пользователям в удобной форме. Форматирование выводимых данных - важнейшая особенность программ печати. Большие возможности по форматированию документальной информации предоставляют текстовые редакторы, системы управления базами данных, генераторы отчётов. Для того чтобы продемонстрировать возможности форматирования данных средствами Турбо Паскаля приведем простую программу постраничной печати текстового файла в двух вариантах:
program print_text; {Печать текстового файла}
uses Printer;
var f:text; {Исходный файл}
c:char;s,nm:string;
j,p:word;
const bel=#7;FF=#12;
BEGIN writeln('ПЕЧАТЬ ТЕКСТА ');writeln;write('Имя файла:');readln(nm);
if nm<>'' then
begin {открытие f с контролем существования файла}
assign(f,nm);{$I-} reset(f);{$I+}
if IOResult<>0 then begin writeln('Ошибка');halt end {конец открытия f} ;
j:=1;p:=1;repeat {цикл печати}if j mod 50=0 then
begin writeln(LST,FF);writeln(bel,'Конец страницы ',p:3);
writeln('Печатать следующую страницу(Y/N)?',bel);
readln(c);if upcase(c)<>'Y' then
begin close(f);halt end;p:=p+1;
for j:=1 to 35 do
write(LST,' ');writeln(LST,'-',p,'-');j:=1
end;readln(f,s);writeln(LST,s);inc(j);
until eof(f) {конец цикла печати};writeln(LST,FF);close(f)
end
END{print_text}.
program print_text2;
{Вариант программы print_text с выводом LST на экран}
var f,LST:text;c:char;s,nm:string;j,p:word;
const bel=#7;FF=#12;
BEGIN writeln('ПЕЧАТЬ ТЕКСТА ');writeln;
write('Имя файла:');readln(nm);if nm<>'' then
begin assign(f,nm);{$I-} reset(f);{$I+}
if IOResult<>0 then begin writeln('Ошибка');halt end;
assign(LST,'con');rewrite(LST);j:=1;p:=1;
repeat if j mod 50=0 then
begin writeln(LST,FF);writeln(bel,'Конец страницы ',p:3);
writeln('Печатать следующую страницу(Y/N)?',bel);
readln(c);if upcase(c)<>'Y' then
begin close(f);halt end;p:=p+1;for j:=1 to 35 do
write(LST,' ');writeln(LST,'-',p,'-');j:=1
end;readln(f,s);writeln(LST,s);inc(j);
until eof(f);writeln(LST,FF);close(f)
end
END{print_text2}.