Создание типизированного файла – содержащего сведения о телефонах абонентов, страница 5

n:=messageDLG('Вы точно уверены,что хотите создать новый или переписать старый файл!!!',mtWarning,[mbYes,mbno],0);

if n=6 then begin

assignfile(f,'anketa');  //связываем файловую переменную

rewrite(f);              //с файлом на диске

spisok.name:=edit1.Text;  //ввод данных в переменную типа-anketa

spisok.tel:=edit2.Text;

spisok.adr:=edit3.Text;

button2.Visible:=true;button3.Visible:=true;

button4.Visible:=true;button5.Visible:=true;

button6.Visible:=true;

button8.Visible:=true;button9.Visible:=true;

radiogroup1.Visible:=true;radiogroup2.Visible:=true;

write(f,spisok);  //запись данных  в файл

closefile(f);  //закрытие файла

end;

end;

procedure TForm1.Button2Click(Sender: TObject); //добавление в файл

begin

if (edit1.Text='')or(edit2.text='') then

messageDLG('Сначала заполните поля',mtWarning,[mbOk],0)

else

begin

assignfile(f,'anketa');

reset(f);             //открываем файл для чтения

seek(f,filesize(f));  //уст. файловый указатель за посл.эл. файла

spisok.name:=edit1.Text;

spisok.tel:=edit2.Text;

spisok.adr:=edit3.Text;

write(f,spisok);

closefile(f);

end;

end;

procedure TForm1.Button3Click(Sender: TObject);//поиск записей в файле

var

frag:string;  //строковая перем.,в кот. вводятся данные для поиска

begin

tab1.Visible:=true;

assignfile(f,'anketa');

reset(f);

j:=1; //перем.,определяющая №строки в таблице вывода

case radiogroup1.ItemIndex of

0: begin

frag:=edit1.Text;

while not eof(f) do

begin

read(f,spisok);

if pos(frag,spisok.name)<>0 then //ищем поз-ю вхождения в запись

begin                          // переменной frag

label4.Caption:=spisok.tel;

tab1.cells[0,j]:=spisok.Name;

tab1.cells[1,j]:=spisok.tel;

tab1.cells[2,j]:=spisok.adr;

j:=j+1;

end;

end;

closefile(f);

end;

1:begin

frag:=edit2.Text;

while not eof(f) do

begin

read(f,spisok);

if pos(frag,spisok.tel)<>0 then

begin

label4.Caption:=spisok.tel;

tab1.cells[0,j]:=spisok.Name;

tab1.cells[1,j]:=spisok.tel;

tab1.cells[2,j]:=spisok.adr;

j:=j+1;

end;

end;

closefile(f);

end;

2:begin

frag:=edit3.Text;

while not eof(f) do

begin

read(f,spisok);

if pos(frag,spisok.adr)<>0 then

begin

label4.Caption:=spisok.tel;

tab1.cells[0,j]:=spisok.Name;

tab1.cells[1,j]:=spisok.tel;

tab1.cells[2,j]:=spisok.adr;

j:=j+1;

end;

end;

closefile(f);

end;

end;

end;

procedure TForm1.Button4Click(Sender: TObject);  //просмотр

begin

tab1.Visible:=true;  //делаем таблицу видимой

assignfile(f,'anketa');

reset(f);

tab1.RowCount:=filesize(f)+1;//задаём кол-во строк в таблице

j:=1;

while not eof(f) do

begin

read(f,spisok);

tab1.cells[0,j]:=spisok.Name;  //ввыводим данные в таблицу построчно

tab1.cells[1,j]:=spisok.tel;

tab1.cells[2,j]:=spisok.adr;

j:=j+1;

end;

closefile(f);

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

ASSIGNFILE(F,'anketa');

{$I-}

reset(f);             //делаем проверку на наличие файла с данными

{$I+}

if ioresult<>0 then

begin

messageDLG('Файл не создан, создайте файл!!!',mtWarning,[mbOk],0);

button2.Visible:=false;button3.Visible:=false;

button4.Visible:=false;button5.Visible:=false;

button6.Visible:=false;

button8.Visible:=false;button9.Visible:=false;

radiogroup1.Visible:=false;radiogroup2.Visible:=false;

end;

tab1.Cells[0,0]:='Фамилия И.О.';

tab1.Cells[1,0]:='Телефон';

tab1.Cells[2,0]:='Адрес';

tab1.Visible:=false;

button6.Enabled:=false;button8.Enabled:=false;

memo1.Text:='Для активации кнопок "Редактировать" и "Удалить" нажмите кнопку просмотр и выберете какую-либо запись';

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

j:=1;//определяет строки в таблице

edit1.Text:='';edit2.Text:='';edit3.Text:=''; //очищаем форму