While (not EOF (mainfile)) and

(Code_z = zap.code_z) do

Begin

Nachisl:= zap.kol_vo * zap.rasz;

Sum_z:= sum_z + nachisl;

Read (Mainfile, zap);

End;

{Добавление}

Writeln (‘ Итого по цеху’, code_z,

‘ начислено ‘, Sum_file:10:2);

Sum_file:= sum_file + Sum_z;

End;

Writeln (‘ Итого по заводу начислено ‘,

Sum_file:10:2);

Readln; End.

{ необходимо особо учитывать случай обработки последней записи}

{Добавление}

1. Имея в наличии текущий код цеха code_z, необходимо обратиться к соответствующему справочнику тем видом доступа, который позволяет тип файла(прямой для типизированного файла-справочника, последовательный для текстового) и выбрать из него запись с нужным кодом цеха.

Затем из записи получить нужное значение «расшифровки» кода цеха – его название. (Для этого может быть написана последовательность операторов, процедура, функция)

Далее это название вписывается в формируемую итоговую запись в нужное место.

После этого запись готова к выводу.

ПРИМЕР ПРЯМОГО ДОСТУПА К СПРАВОЧНИКУ

(на базе предыдущего примера)

...

While (not EOF (mainfile)) and

(Code_z = zap.code_z) do

Begin

Nachisl:= zap.kol_vo * zap.rasz;

Sum_z:= sum_z + nachisl;

Read (Mainfile, zap);

End;

{ Первоначальный вариант }

Writeln (‘ Итого по цеху’, code_z,

‘ начислено ‘, Sum_file:10:2);

{ Вариант с использованием прямого доступа

к справочнику}

...

While (not EOF (mainfile)) and

(Code_z = zap.code_z) do

Begin

Nachisl:= zap.kol_vo * zap.rasz;

Sum_z:= sum_z + nachisl;

Read (Mainfile, zap);

End;

{формирование итоговой записи}

{1 – миним.номер цеха}

num_zap_spr1:= Code_z – 1;

{нахождение в справочнике записи

с данным номером цеха}

seek(F_spr1, num_zap_spr1);

{чтение из справочника записи с данным номером цеха}

read (F_spr1,zap_spr1);

Writeln (‘ Итого по цеху’, code_z,

Zap_spr1.nazv_z,

{поле с названием данного цеха}

‘ начислено ‘, Sum_file:10:2);

...

При использовании текстового справочника: вместо SEEK(...)и др. нужен цикл поиска по файлу-справочнику записи с данным кодом цеха code_z, получение из неё поля с названием данного цеха и вставка названия в формируемую итоговую запись.

О сортировке записей по нескольким признакам

В постановке задач совместной обработки файлов содержится требование упорядоченности записей основного файла по некоторым указанным признакам. Для решения этой задачи может быть предложен такой приём.

В описание типа записи для файла необходимо добавить специальное поле типа STRING, значение которого и позволить сортировать записи. Дадим ему условное имя SortField:

...

SortField: string;

...

При вводе значений полей очередной записи значение этого поля формируется следующим образом.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow