Что-то мне это сильно напоминает, я кажется отвечал на такой вопрос где-то... SapFira Ну попробуй так:
| Код | Uses Crt; Type TActor=record fio:string[20]; film:string[30]; end; Type TActorsFile=file of TActor;
var
af:TactorsFile; filename:string; i,j:integer; actor:TActor; film:string; f:file; CurPos:integer;
Procedure DeletePos(Filename:string ; Pos:integer); var af,bf:TActorsFile; tmp:TActor;
begin assign(af,Filename); reset(af); assign(bf,Filename); reset(bf); seek(af,Pos); seek(bf,Pos); read(af,tmp); while not eof(af) do begin read(af,tmp); write(bf,tmp); end; close(af); truncate(bf); close(bf); end;
begin clrscr; write('Vvedite imy faila:'); readln(filename); writeln('Vvedite imena acterov i ix filmy'); writeln('Dly okon4aniya vvoda nazmite probel '); assign(af,filename); rewrite(af); repeat write('Vvedite actera: '); readln(actor.fio); if actor.fio<>' ' then begin write('Vvedite actors film: '); readln(actor.film); write(af,actor); end; until Actor.fio=' '; close(af);
writeln; write('Vvedite film dly naxozdeniya aktera: '); readln(film); assign(af,filename); reset(af); while not eof(af) do begin read(af,actor); if actor.Film=film then begin writeln('Film:',actor.film); writeln('Actor:',actor.fio); CurPos:=FilePos(af); DeletePos(filename,CurPos-1); end; end; close(af); assign(af,filename); reset(af); writeln; writeln('SODERZHIMOE FAILA:'); writeln; while not eof(af) do begin read(af,actor); writeln('Film:',actor.film); writeln('Actor:',actor.fio); end; close(af); writeln; writeln('Press any key to continue...'); readln; end. |
|