Удаление записи из типизированного файла. - Pascal

Узнай цену своей работы

Формулировка задачи:

Какими способами можно реализовать данную задачу? Из типизированного файла нужно удалить запись, номер которой указывается пользователем. Программу писать не обязательно, просто подкиньте идею =)

Решение задачи: «Удаление записи из типизированного файла.»

textual
Листинг программы
  1. procedure DelZap(var f:t_file);
  2. var n,i:integer;
  3.     rab:rabotnik;
  4. begin
  5. write('Удалить запись № ');
  6. readln(n);
  7. ResFile(f);
  8. if (filesize(f)<n)or(n<0) then
  9.  begin
  10.   writeln('В файле нет такой записи');
  11.   close(f);
  12.   write('Press Enter...');
  13.   readln;
  14.   exit;
  15.  end;
  16. seek(f,n-1);
  17. for i:=n-1 to filesize(f)-2 do
  18.  begin
  19.   seek(f,i+1);
  20.   read(f,rab);
  21.   seek(f,i);
  22.   write(f,rab);
  23.  end;
  24. seek(f,filesize(f)-1);
  25. truncate(f);
  26. close(f);
  27. write('Press Enter...');
  28. readln
  29. end;

Объяснение кода листинга программы

  1. Создается процедура DelZap, которая принимает в качестве параметра файл (переменная f типа t_file).
  2. Выводится сообщение «Удалить запись №» и считывается число n.
  3. Вызывается функция ResFile(f), которая перезаписывает файл.
  4. Проверяется условие: если размер файла (filesize(f)) меньше n или n меньше 0, то выводится сообщение «В файле нет такой записи» и файл закрывается.
  5. Если условие не выполняется, то файл открывается заново, и его позиция устанавливается в n-1.
  6. Затем в цикле 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) устанавливает позицию чтения/записи файла в конец файла.
  7. Вызывается функция truncate(f), которая обрезает файл.
  8. Файл закрывается с помощью функции close(f).
  9. Выводится сообщение «Press Enter...».
  10. Считывается символ новой строки с помощью функции readln.
  11. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы