Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Способы печати результатов работы

Массивы файлов

 

Файловая переменная может быть элементом массива или записи. В этом случае для текстовых и типизированных файлов становится возможным создать индексную организацию файлов (массив файлов). Целесообразно применять массивы файлов для решения задач, требующих одновременной работы с не­сколькими файлами.

Пример объявления массива файлов:

CONST KF = 10; { - количество файлов в массиве }

TYPE FL = FILE OF REAL; { - тип компонент файла }

VAR MFL: ARRAY [1..KF] OF FL; { - массив файлов типа 'FL' }

Массивы файлов можно использовать для ускорения поиска данных в больших файлах. Например, в типизированных файлах телефонного справочника, кадро­вых сведений. Для этого все данные надо упорядочить по определенному призна­ку и по частям разместить их в файлах - элементах массива файлов. Например, каждый файл из массива файлов может содержать сведения об абонентах одной АТС (автоматизированной телефонной станции). При этом номер элемента в мас­сиве файлов должен быть функцией от номера АТС; например, он может быть равен трем первым цифрам семизначного номера телефона.

Пример программы с использованием массива файлов для телефонного спра­вочника. Номера файлов всех АТС в массиве файлов F пронумерованы начиная с номера 100: от 100 до 100 + COLATS. Имена физиче­ских файлов можно формировать из номера АТС, т. е. из первых трех цифр но­мера телефона. В примере имена физических файлов изменяются от 100.DAT до 100+COLATS.DAT. Поиск сведений об абоненте с заданным номером телефона про­изводится только в файле с номером АТС, заданным в требуемом номере телефо­на. Для этого надо открыть для поиска только один файл этой АТС.

В программе используется STR - встроенная процедура, которая формирует строку IMF из I - целого значения, номера АТС.

Использование массива файлов.

CONST COLATS =10; { - количество АТС }

ТУРЕ STRUC = RECORD { - тип записей файла }

NOM: INTEGER; { - номер телефона }

FIO: STRING [20] { - Ф.И.О. абонента }

END;

FL = FILE OF STRUC; { - тип файла }

VAR ST: STRUC;

F: ARRAY [100.. COLATS + 100 ] OF FL; { - массив файлов }

IMF: STRING[3]; { - имя, номер файла }

…………………………………………..

FOR I:= 100 TO COLATS + 100 DO

BEGIN

STR (I, IMF); ASSIGN (F[I], IMF + '.DAT'); { - связь файлов }

REWRITE (F[I]); { открытие I-файла }

... { Запись в I - файл: }

WRITE (F[I], ST);... CLOSE (F[I]);

RESET (F[I]>;... READ (F[I], ST); { - чтение из 1-файла }

CLOSE (F[IJ);...

 

Результаты работы программы могут быть выведены на печать или в файлы, текстовые или типизированные. Как правило, результаты, которые должны быть распечатаны, формируются в виде текстовых файлов, а для длительного хране­ния и последующего использования - в виде типизированных файлов.

Рас­смотрим некоторые способы организации просмотра и печати результатов вы­полнения программы:

1) вывод результатов на экран, а после отладки программы вывод результатов из программы на печать во время выполнения программы (средствами Паскаля);

2) вывод результатов на экран, после отладки вывод результатов в текстовый файл, а из файла - на печать средствами DOS;

3) вывод результатов только в текстовый файл, а после отладки и анализа полу­ченных результатов печать из файла средствами DOS;

4) вывод данных на экран: формирование экрана с результатами в том виде (ме­ню, ответ пользователя), в котором они должны быть на печати; останов про­граммы в требуемой точке, печать содержимого экрана (командой Shift+Print Screen) и продолжение выполнения программы.

Для вывода данных на экран можно использовать файлы OUTPUT или файл пользователя, который связан с экраном. Если количество прогонов программы (например, с разными вариантами исходных данных) более одного, то целесооб­разно использовать один или ряд файлов пользователя для накопления в них результатов работы программы.

Для вывода результатов на экран с помощью стандартного файла OUTPUT его не надо связывать с физическим файлом процедурой Assign: по умолчанию в качестве физического файла будет использоваться экран. Вызов процедуры вы­вода данных на экран будет в виде:

Write (список данных);

После отладки программы можно связать файл Output:

1) с принтером с помощью Assign (Output, 'PRN');;

2) с файлом на МД; например: Assign (Output, 'F:\REZ.DAT');.

Если в качестве файла результатов надо использовать FL - текстовый файл пользователя, то для вывода результатов на экран во время отладки ему надо назначить в качестве физического пустой файл (' '). Например:

Assign (FL, ''); Rewrite (FL);

Вызов процедуры вывода данных в файл будет в виде: Write (FL, список-данных);

Для того чтобы после отладки программы с помощью тех же операторов вы­вести данные в текстовый файл пользователя, надо файлу FL назначить в каче­стве физического файла файл на МД; например:

Assign (FL, 'LR.RES');

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

CONST FNAME = ''; { - для вывода результатов на экран)

CONST FNAME = 'LR.RES'; { - для вывода в файл)

CONST FNAME = 'PRN'; { - для вывода на печать)

где FNAME - идентификатор наименования физического файла.

В программе при этом можно, например, вызвать процедуры:

Assign (FL, FNAME); Rewrite (FL);

Определение приемника результатов сводится в этом случае к изменению значения строковой константы FNAME. Остальные операторы программы при этом остаются без изменения. В таком виде программа более универсальна, так как с ее помощью путем незначительной корректировки (одной константы) мож­но выводить результаты в любой файл или на любое логическое устройство. Этот способ удобно использовать также при тестировании программы, т. е. при прогоне программы с разными вариантами исходных данных и с выводом ре­зультатов в разные текстовые файлы; при этом в константе FNAME задается имя текстового файла результатов.

Этот же прием можно использовать и при работе со стандартными файлами Input и Output. Например:

Assign (Input, FINAME); Reset (Input); Assign (Output, FNAME); Rewrite (Output);

При этом операторы ввода (Read) и вывода (Write) не будут содержать имя файловой переменной.

Для прогона программы с выводом результатов только на печать можно ис­пользовать имя файла (имя файловой переменной) LST.

Использование файловой переменной LST требует применения стандартного библиотечного модуля Printer и имени LST в качестве файловой переменной.

Стандартный библиотечный модуль PRINTER, входящий в библиотеку Turbo. TPL, объявляет имя файловой переменной LST и связывает его с логическим уст­ройством LPT1. Это дает возможность использовать в программе файл LST для печати результатов работы программы. Например:

PROGRAM PR;

USES PRINTER;

BEGIN WRITELN (LST, ' ПРИВЕТ! '); END.

Все операции по связыванию файла LST с принтером и открытие файла LST выполняет модуль PRINTER.

Печать содержимого экрана. Например, если на экран выдается запрос пользователю в виде меню, пользователь набирает с клавиатуры ответ, который будет введен в ОП только после нажатия клавиши Enter. Чтобы отпечатать с экрана запрос и ответ пользователя, необходимо после набора ответа сначала отпечатать содержимое экрана (ввести команду Shift+Print Screen), и только потом нажать клавишу Enter.

 

 

<== предыдущая лекция | следующая лекция ==>
Процедуры и функции для работы с файлами | Ввод данных из текстового файла
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 280; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.