Правильная ли процедура?

посмотрите плиз верно ли я написала процедуру удаления текущей записи из файла??? работа с типизированным файлом
procedure Udalenie(var z:knigi);
 var
 i:integer;
 f:text;
 ff:file of knigi;
 begin
 Seek(f,i);
 Read(f,z);
 Reset(f);
 Seek(f,ff);
 Rewrite(ff);
 writeln('Номер текущей записи:', Filepos(f)+1);
 if FilePos(f)=FileSize(f) then
 Writeln('обнаружен конец файла');

 Read(f,z.janr);
Read(f,z.avtor);
Read(f,z.nazvanie);
Read(f,z.izdatelstvo);
Read(f,z.god_izdaniya);

write(f,z.Janr);

write(f,z.Nazvanie);
write(f,z.Izdatelstvo);
write(f,z.God_izdaniya);

Close(f);
Erase(f);
Close(ff);
Rename(f,ff);
end;
2 ответа

А вы сами её проверяли?! И как? Работает?...нет, неверно. 1) для чего используется текстовый файл, если удалить нужно из типизированного файла? 2) вот такое даже не откомпилируется: Seek(f,ff);вообще, идея правильная - это проще делать через дополнительный файл. но реализация у Вас - просто кошмар... p.s. нужно в цикле переписать все записи из одно файла в другой за исключением той записи, которую удаляем.


помогите пожалуйста исправить, сделанные мной, ошибки))