На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Модераторы: Romtek, volvo877
  
> Базы данных, записные книжки и т.д., файлы и записи, в одном флаконе
    Простенькая база данных.
    Вводим данные, а потом ищем по имени и выводим на экран.
    ExpandedWrap disabled
      const bookname='phonbook.dat';
       
      type
        TPhoneBook=record
          name, { Имя }
          surname: string[30]; { Фамилия }
          phone: string[10]; { Телефон }
        end;
       
      var
        F: file of TPhoneBook; { Файл из записей }
        PhoneBook: TPhoneBook; { Текущая запись }
       
      function Correct: boolean; { Функция прооверки корректности вводимых данных }
      begin
           writeln;
           with PhoneBook do
           begin
                write('Введи имя: '); readln(Name);
                write('Введи фамилию: '); readln(SurName);
                write('Введи # телефона: '); readln(Phone);
       
                Correct:=(Name<>'') and (SurName<>'') and (Phone<>'');
           end;
      end;
       
      procedure CreateBook; { Создание файла с записями }
      begin
           assign(f,bookname);
           {$I-}
           rewrite(F); { создаём файл }
           {$I+}
           if IOresult=0 then { Если не было ошибок, то }
              { добавлять записи в файл, пока корректно вводим данные }
              while Correct do write(F, PhoneBook);
       
           Close(F); { Закрываем файл }
      end;
       
      procedure Find; { Поиск по имени и вывод данных на экран }
      var
        who: string[30];
        found: boolean;
      begin
           write('Кого ищем? '); readln(who);
           if who='' then exit;
           found:=false;
       
           assign(f,bookname);
           {$I-}
           reset(F); { Открываем наш файл }
           {$I+}
           if IOresult=0 then
           with PhoneBook do
           while Not EOF(F) do { Ищем, пока не конец файла }
           begin
                read(F,PhoneBook); { чтение записи из файла }
                if name=who then  { Нашли такого/ую }
                begin
                     writeln(Name:30,SurName:30,Phone:10); { Выводим данные на экран форматированным выводом}
                     found:=true;
                end;
           end;
       
           Close(f); { Закрываем файл }
           if Not Found then writeln(Who,' не найден(а).');
      end;
       
      begin
           CreateBook;
           Find;
           writeln(#13#10'Конец работы! Жми на Enter.');
           readln;
      end.



    Исходник:
    Сообщение отредактировано: Romtek -

    Прикреплённый файлПрикреплённый файлSimpleDB.zip (0.92 Кбайт, скачиваний: 467)
    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script Execution time: 0,0677 ]   [ 15 queries used ]   [ Generated: 17.11.19, 17:31 GMT ]