Удаление записи из типизированного файла. - 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.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д