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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 20:59   #1
lola1990
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 18
По умолчанию файлы записи в Pascal

разработать меню, позволяющее:
- создавать новый файл, открывать, просматривать, редактировать и удалять существующий файл;
- добавлять, редактировать, удалять записи из файла (не используя массив записей);
- ввод имен файлов осуществляется с клавиатуры, необходимо производить проверку на существование файла;
В файле хранится информация о книгах: шифр, фамилия автора, название книги, год издания. В новый файл переписать информацию о книгах, в названии которых встречается заданное слово. В текстовый файл выдать информацию о названиях книг исходного файла, год издания которых меньше заданного.
Листинг:
Код:
program lab8var2;
type knigi = record
     shifr: string[10];
     familiya:string[20];
     nazvanie:string[30];
     god: integer;
     end;
Procedure Newfile(var file1:file of knigi);
var kniga: knigi;  ch:char;
begin
     rewrite(file1);
     Writeln('Введите данные о книгах');
     seek(file1,1);
     repeat
         with  kniga do
           begin
             write('Введите шифр книги');
             readln(shifr);
             write('Введите фамилию автора');
             readln(familiya);
             write('Введите название книги');
             readln(nazvanie);
             write('Введите год издания');
             readln(god);
             writeln;
             write(file1,kniga);
             writeln('N+Enter - завершение ввода');
             readln(ch);
           end;
     until((ch='N') or (ch='n'));
     close(file1);
end;
procedure Readfile(var file1:file of knigi);
var kniga: knigi;
i:integer;
begin
   Reset(file1);
   writeln;
   seek(file1,1);
   repeat
       with kniga do
       begin
           read(file1,kniga);
           writeln('');
           writeln(shifr,', ',familiya,', "',nazvanie,'", ',god);
       end;
       until eof(file1);
       close(file1);
end;
procedure Dobavzap(var file1:file of knigi);
var kniga:knigi;
begin
     reset(file1);
     Writeln('Введите данные об одной книге');
     write('Введите шифр книги');
     readln(kniga.shifr);
     write('Введите фамилию автора');
     readln(kniga.familiya);
     write('Введите название книги');
     readln(kniga.nazvanie);
     write('Введите год издания');
     readln(kniga.god);
     writeln;
     seek(file1,filesize(file1));
     write(file1,kniga);
     close(file1);
end;
procedure Editezap(var file1:file of knigi);
var kniga:knigi;
    n:integer;
begin
     reset(file1);
     writeln('Введите n - номер строки, которую необходимо редактировать');
     readln(n);
     seek(file1,n);
     Writeln('Введите данныео книге, которыми нужно заменить старый вариант записи');
     write('Введите шифр книги');
     readln(kniga.shifr);
     write('Введите фамилию автора');
     readln(kniga.familiya);
     write('Введите название книги');
     readln(kniga.nazvanie);
     write('Введите год издания');
     readln(kniga.god);
     writeln;
     write(file1,kniga);
     close(file1);
end;
procedure Deletezap(var file1:file of knigi);
var n:integer;
    kniga:knigi;
begin
     reset(file1);
     writeln('Введите n - номер строки, которую необходимо удалить');
     readln(n);
     seek(file1,filesize(file1)-1);
     read(file1,kniga);
     seek(file1,n);
     write(file1,kniga);
     seek(file1,filesize(file1)-1);
     truncate(file1);
     close(file1);
end;
procedure Delete(var file1:file of knigi);
begin
     erase(file1);
     writeln('Файл удален');
end;
procedure Poisk(var file1:file of knigi);
var frag:file of knigi;
    kniga:knigi;
begin
     Writeln('Введите фрагмент для поиска');
     Readln(frag);
     with kniga do
       begin    
          seek(file1,1);
          pos(frag,file1);
       end;
end;
var fname:string; 
    file1:file of knigi;
begin
     write('проверка');
     readln(fname);
     assign(file1,fname);
     ReadFile(file1);
     Poisk(file1);
     ReadFile(file1);
     readln;
end.

Последний раз редактировалось lola1990; 18.12.2011 в 21:04.
lola1990 вне форума Ответить с цитированием
Старый 18.12.2011, 21:00   #2
lola1990
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 18
По умолчанию

Собственно, интересно ваше мнение по тому, как же можно найти необходимое слово в стркое типизированного файла.. pos тут явно не подходит. ко всему прочему, он еще и ищет только по первому вхождению
lola1990 вне форума Ответить с цитированием
Старый 18.12.2011, 21:37   #3
lola1990
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 18
По умолчанию

сопутствующий вопрос - а можно как то например первую строку в типизированном файле сделать string?

Последний раз редактировалось lola1990; 18.12.2011 в 21:59.
lola1990 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
Записи файлы Чуччи Паскаль, Turbo Pascal, PascalABC.NET 1 04.03.2011 14:09
Записи и файлы Platinum1 Фриланс 7 30.11.2010 10:50
В чем ошибка? (Файлы, записи) (Delphi/Pascal) Wild_klas Помощь студентам 0 21.11.2010 16:04
Файлы и записи (Pascal) fit Помощь студентам 2 19.12.2009 01:38