Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Pascal: Файлы и записи > Базы данных, записные книжки и т.д. |
Автор: romtek 15.04.04, 11:59 |
Простенькая база данных. Вводим данные, а потом ищем по имени и выводим на экран. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> 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. Исходник: |