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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2012, 19:05   #1
Natalia91169
 
Регистрация: 19.12.2011
Сообщений: 7
Восклицание Работа с файлами (Pascal)

Создать типизированный файл film.dat, содержащий сведения о видеофильмах:
- название фильма;
- категория (ужасы, комедия, боевик и т.д.);
- длительность;
а) обеспечить просмотр содержимого файла в табличной форме;
б) добавление новых записей;
в) выбрать и переписать в другой файл сведения о фильмах с заданной категорией;
г) обеспечить поиск в файле по заданному названию фильма.


Буду весьма благодарна
Natalia91169 вне форума Ответить с цитированием
Старый 20.06.2012, 19:42   #2
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Natalia91169 Посмотреть сообщение
Буду весьма благодарна
Наработок то вообще нет?!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 20.06.2012, 20:09   #3
Natalia91169
 
Регистрация: 19.12.2011
Сообщений: 7
По умолчанию

Только вот это(начало):

Program cinema;
Uses Crt;
type cin=record
nazvanie:string[20];
kategoria:string[15];
dlitelnost:real;
end;
Var a:cin;
otv:char;
f:file of cin;
begin
ClrScr;
assign(f,'film.dat');
rewrite(f);
repeat
writeln('Vvedite nazvanie,kategoriyu,dliyelnost');
readln(a.nazvanie);
readln(a.kategoria);
readln(a.dlitelnost);
writeln('Vihod Esc');
otv:=readkey;
until ord(otv)=27;
close(f);
end.
Natalia91169 вне форума Ответить с цитированием
Старый 20.06.2012, 20:15   #4
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Вот на скорую руку без проверок ввода.
Код:
uses crt;
type
  TFilms=record
  FilmName:string[50];
  Kategory:string[20];
  Long:word;
end;

var
  FZ:file of TFilms;
  Film:TFilms;
  Choise:char;

procedure AddRecord;
var
  AddRecordChoise:char;
begin
  seek(FZ, filesize(FZ));
  writeln('Input the information about film!');
  write('Film name = ');
  readln(Film.FilmName);
  write('Kategory (horor, comedy, thriller) = ');
  readln(Film.Kategory);
  write('Long = ');
  readln(Film.Long);
  write(FZ, Film);
  writeln;
  write('Record is added!',#13#10,'Repeat y/n - ');
  readln(AddRecordChoise);
  if (AddRecordChoise='y') or (AddRecordChoise='Y') then
    AddRecord;
end;

procedure DisplayList;
var
  i,j:integer;
  t:TFilms;
begin
  seek(FZ,0);
  writeln;
  writeln('List:');
  writeln('№ | Film Name  | Kategory | Long  |');
  for i := 1 to FileSize(FZ) do
  begin
    read(FZ,Film);
    writeln(i,') ', Film.FilmName, ' ',Film.Kategory, ' ', Film.Long);
  end;
  readln;
end;

procedure RecordKategoryInFile;
var
  SecFZ:file of TFilms;
  ArrKategory:array[1..3] of string;
  kategory:string;
  i,choise,col:integer;
begin
  ArrKategory[1]:='horor';
  ArrKategory[2]:='comedy';
  ArrKategory[3]:='thriller';
  col:=0;
  writeln;
  writeln('Select the kategory for record - ');
  writeln('   ',1,'. ', ArrKategory[1]);
  writeln('   ',2,'. ', ArrKategory[2]);
  writeln('   ',3,'. ', ArrKategory[3]);
  write('Your choise is - ');
  readln(choise);

  {$I-}
  Assign(SecFZ,'C:\film2.dat');
  reset(SecFZ);
  {$I+}
  if IOResult<>0 then
    rewrite(SecFZ);
  seek(FZ,0);
  seek(SecFZ,0);
  while not eof(FZ) do
  begin
    read(FZ,film);
    if film.Kategory = ArrKategory[choise] then
    begin
      write(SecFZ,film);
      inc(col);
    end;
  end;
  if col = 0 then
    writeln('Films with same kategory does not exist!')
  else writeln('Record is added');
  close(SecFZ);
  readln;
end;

procedure SearchFilm;
var
  SearchedFilm:string;
  i,col:integer;
begin
  col:=0;
  seek(FZ,0);
  writeln('Finder:');
  write('Input the name of film - ');
  readln(SearchedFilm);
  writeln('Result');
  for i := 1 to FileSize(FZ) do
  begin
    read(FZ,Film);
    if Film.FilmName = SearchedFilm then
    begin
      inc(col);
      writeln(i,') ',Film.FilmName,' ', Film.Kategory, ' ',Film.Long,';');
    end;
  end;
  if col = 0 then
    writeln('The film with same number does not exist!');
  readln;
end;

begin
  {$I-}
  Assign(FZ,'C:\film.dat');
  reset(FZ);
  {$I+}
  if IOResult<>0 then
    rewrite(FZ);
  if FileSize(FZ)=0 then
  begin
    writeln('Number of records in file is 0!',#13#10,'You need to add records.');
    AddRecord;
  end;
  while choise<>'5' do
  begin
    writeln;
    writeln('Please, choise the item to work with the reference book:');
    writeln('    1) add new record');
    writeln('    2) display a list');
    writeln('    3) record the kategory to file');
    writeln('    4) search the film');
    writeln('    5) exit');
    write('Your choise is - ');
    readln(Choise);
    case Choise of
      '1': AddRecord;
      '2': DisplayList;
      '3': RecordKategoryInFile;
      '4': SearchFilm;
    end;
  end;
  close(FZ);
  writeln('Press any key for exit!');
  readln;
end.
Проверяй!
Помог - жми на весы!
ByAlex89@mail.ru

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами (pascal) zenid Помощь студентам 1 26.12.2011 16:18
Работа с файлами (Pascal) Defunkt Помощь студентам 1 21.12.2011 20:38
Работа с файлами (Pascal) ksu04061992 Помощь студентам 0 29.11.2011 21:52
работа с файлами в Pascal Мaрина Помощь студентам 1 28.06.2011 12:14
Работа с файлами(Pascal Mekkeliard Помощь студентам 2 07.12.2010 15:56