Удаление записи из типизированного файла. - Pascal
Формулировка задачи:
Какими способами можно реализовать данную задачу? Из типизированного файла нужно удалить запись, номер которой указывается пользователем. Программу писать не обязательно, просто подкиньте идею =)
Решение задачи: «Удаление записи из типизированного файла.»
textual
Листинг программы
procedure DelZap(var f:t_file); var n,i:integer; rab:rabotnik; begin write('Удалить запись № '); readln(n); ResFile(f); if (filesize(f)<n)or(n<0) then begin writeln('В файле нет такой записи'); close(f); write('Press Enter...'); readln; exit; end; seek(f,n-1); for i:=n-1 to filesize(f)-2 do begin seek(f,i+1); read(f,rab); seek(f,i); write(f,rab); end; seek(f,filesize(f)-1); truncate(f); close(f); write('Press Enter...'); readln end;
Объяснение кода листинга программы
- Создается процедура DelZap, которая принимает в качестве параметра файл (переменная f типа t_file).
- Выводится сообщение «Удалить запись №» и считывается число n.
- Вызывается функция ResFile(f), которая перезаписывает файл.
- Проверяется условие: если размер файла (filesize(f)) меньше n или n меньше 0, то выводится сообщение «В файле нет такой записи» и файл закрывается.
- Если условие не выполняется, то файл открывается заново, и его позиция устанавливается в n-1.
- Затем в цикле for происходит следующее:
- seek(f,n-1) устанавливает позицию чтения/записи файла в n-1.
- for i:=n-1 to filesize(f)-2 do
- seek(f,i+1) устанавливает позицию чтения/записи файла в i+1.
- read(f,rab) считывает данные из файла в переменную rab.
- seek(f,i) устанавливает позицию чтения/записи файла в i.
- write(f,rab) записывает данные из переменной rab в файл.
- end;
- seek(f,filesize(f)-1) устанавливает позицию чтения/записи файла в конец файла.
- Вызывается функция truncate(f), которая обрезает файл.
- Файл закрывается с помощью функции close(f).
- Выводится сообщение «Press Enter...».
- Считывается символ новой строки с помощью функции readln.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д