Помогите организовать поиск через case
procedure findfio;
var
maska: string;
flag: boolean;
countrec: integer;
begin
name_of_file;
assign(f, file_name);
{$I-}
reset(f);
{$I+}
if IOresult = 0 then
begin
write('Vvedite familii dlya poiska: ');
readln(maska);
flag:=false;
countrec:=0;
while (not Eof(f)) do
begin
read(f,rec);
with rec do
if pos(maska,fio) <> 0 then \\Как организовать через case чтобы заместо fio было year и address
begin
flag:=true;
inc(countrec);
writeln(' Fio ',fio:5,' Vozrast',year:5,'Address',home:5,'Group',group:5);
end;
end;
if flag then
begin
writeln(' Chislo zapisei s imenem : ',maska,'=',countrec);
end
else
writeln(' Fail ne soderzhit familii',maska);
close(f);
end
else
writeln('File ',+file_name+' is not');
end;
Покажи описание типа-структуры (Rec), что там у тебя за параметры присутствуют? В принципе, можно поиграться с вариантной записью...
Program lib;
uses crt;
type Books=record
number:integer;
fio:string;
group:string;
home:string;
year:integer;
end;
var
rec:books;
Сделай так:
type
Books = record
number:integer;
year:integer;
case boolean of
false: (
fio: string;
group: string;
home: string
);
true: (
st: array[1 .. 3] of string
);
end;
for i := 1 to 3 begin, и просто обращаться по индексу к любому из полей fio, group, home ...
if pos(maska, st[i]) then ...
end;