Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2009, 22:58   #1
Максим723
Новичок
Джуниор
 
Регистрация: 15.11.2009
Сообщений: 1
По умолчанию Паскаль. Удаление из файла.

Составить проги, с помощью которых
-сформировать файл из записей, содержащих сведения о книге(фам автора, название, год издания); Это вот.
PHP код:
Program nomer1;
uses crt;
type book=record
avtor
:string[15];
namestring[18];
godinteger;
end;
var 
kniga:book;
f,: file of book;
begin
clrscr
;
assign(f,'c:’book.txt');
rewrite(f);
with kniga do
repeat
write
(‘Автор ');
readln(avtor);
if avtor='' then break;
write('
Наименование книги '); readln(name);
write('
Год издания god '); readln(god);
write(f,kniga);
until avtor='';
close(f);
readln;
end. 
И вторая часть задания, программа: Исключить все книги с названием "ФИЗИКА"
Первая прога получилась, а вторая нет. Не совсем понятно как использовать TRUNCATE
Максим723 вне форума Ответить с цитированием
Старый 29.12.2009, 23:52   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Можно попробовать "затереть" эту запись следующей. Примерно так (пишу сюда):
Код:
  fSize := FileSize(F);
  for i := 0 to fSize - 1 do
    if book.name = 'ФИЗИКА' then
      for l := i to fSize - 1 do
      begin
        Seek(F, i + 1);
        Read(F, book);
        Seek(F, i);
        Write(F, book);
      end;
  Seek(F, fSize - 1);
  Truncate(F);
Алгоритм думаю понятен?
апд
Цитата:
Truncate (процедура)
--------------------
Усекает файл в текущей позиции файла.

Объявление:
Procedure Truncate(Var F);

Режим:
Windows, Real, Protected

Замечания:
F - файловая переменная любого типа, кроме текстового. Все, что находится за
текущей позицией файла, удаляется, и возвращается признак конца файла
(EOF(F) = True).

В режиме {$I+} при возникновении ошибки, функция IOResult возвращает
отличное от нуля значение.

Ограничения:
Файл F должен быть открыт.

Последний раз редактировалось psycho-coder; 29.12.2009 в 23:55.
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление из файла Шурик Общие вопросы Delphi 4 30.05.2009 23:08
Удаление файла uraura Общие вопросы Delphi 3 29.11.2008 18:38
Удаление файла mopozoff Общие вопросы Delphi 1 13.06.2008 21:25
Типизированные файлы.Создание, удаление, редактирование, сортировка записей типизированного файла.Паскаль Студент Шиза Помощь студентам 6 08.12.2007 13:41
Паскаль. Автоматизировать удаление файла Elm0 Паскаль, Turbo Pascal, PascalABC.NET 4 18.06.2007 10:26