Здравствуйте, помогите, пожалуйста объявить и обработать файлы.
Есть код. Нужно сделать в нем(или из него) типизированные файлы.
вот само задание, по которому это нужно сделать
Создать массив записей в соответствии с заданной структурой. Количество записей не больше 10. Вывести на печать данные обо всех клиентах, определенного банка (название банка задается пользователем).
Вот код
Код:
{Основная программа }
uses op, obrabotka;
var
sved1 : sved;
begin
vvod (sved1);
spravka (sved1);
end.
Код:
{Модуль 1 описания данных}
unit op;
interface
const
n=2;
type
tClient=record
full_name : string ;
sum : string;
address : string;
end;
tBank=record
name: string;
annual_percent: real;
end;
inform=record
client: tClient;
country: string;
bank: tBank;
end;
sved=array[1..n] of inform;
implementation
end.
Код:
{Модуль 2. }
unit obrabotka;
interface
uses op;
procedure vvod (var sved1:sved);
procedure spravka (var sved1:sved);
implementation
procedure vvod (var sved1:sved);
var
i : byte;
begin
for i:=1 to n do
with sved1[i] do begin
with client do begin
write('Введите ФИО клиента ', i, 'клиента');
readln(full_name);
write('Введите сумму вклада ', i, 'в банке');
readln(sum);
write('Введите адрес ', i, 'банка ');
readln(address);
write('Введите страну', i, 'банка');
readln(country);
write('Введите название ', i, 'банка');
readln(name);
write('Введите годовой ', i, 'процент');
readln(annual_persent);
end;
end;
end;
procedure spravka (var sved1:sved);
var
i:byte;
bank1:string;
begin
writeln('Введите название банка');
readln(bank1);
for i:=1 to n do
with sved1[i] do
if sved1[i].bank.name=bank1 then
writeln('ФИО клиента:',sved1[i].client.full_name:6,
' Сумма вклада в банке: ', sved1[i].client.sum:6,
' Адрес клиента: ',sved1[i].client.address:6);
end;
end.
Я начала записывать это в файл- не работает. выдает ошибку в 12 строке (где Rewrite). Нельзя преобразовывать выражение типа Array [1..2] of record (...)к типу file
Код:
{Ìîäóëü 2. }
unit obrabotka;
interface
uses op;
procedure vvod (var sved1:sved);
procedure spravka (var sved1:sved);
implementation
procedure vvod (var sved1:sved);
var
i : byte;
ch : char;
begin
rewrite (sved1);
ch:='a';
while (ch='a') or (ch='n') do
begin
for i:=1 to n do
with sved1[i] do begin
with client do begin
write('Ââåäèòå ÔÈÎ ' , i, ' êëèåíòà ' );
readln(full_name);
write('Ââåäèòå ñóììó âêëàäà â ' , i ,' áàíêå ' );
readln(sum);
write('Ââåäèòå àäðåñ ', i , ' áàíêà ' );
readln(address);
end;
write('Ââåäèòå ñòðàíó ', i, ' áàíêà ' );
readln(country);
with bank do begin
write('Ââåäèòå íàçâàíèå ', i , 'áàíêà ' );
readln(name);
write('Ââåäèòå ãîäîâîé ïðîöåíò ' , i , ' áàíêà ');
readln(annual_percent);
end;
end;
end;
write(sved1,client);
writeln('Áóäåòå åùå ââîäèòü äàííûå, åñëè 'äà', òî íàáåðèòå 'a'èëè 'n'');
readln(ch);
end;
close(sved1);
end;
procedure spravka (var sved1:sved);
var
i:byte;
bank1:string;
begin
reset(sved1);
writeln('Ñâåäåíèÿ î êëèåíòàõ îïðåäåëåííîãî áàíêà');
while NOT EOF(sved1) do
begin
read(sved1,client);
writeln('Ââåäèòå íàçâàíèå áàíêà');
readln(bank1);
for i:=1 to n do
with sved1[i] do
if sved1[i].bank.name=bank1 then
writeln('ÔÈÎ êëèåíòà:',sved1[i].client.full_name:6,
' Ñóììà âêëàäà â áàíêå: ', sved1[i].client.sum:6,
' Àäðåñ êëèåíòà: ',sved1[i].client.address:6);
end;
close(sved1);
end.
Извините за "китайский" в последнем коде, из предыдущего все понятно/ Модули обязательны