Тема: строки
Показать сообщение отдельно
  #4  
Старый 17.10.2010, 21:04
dubfire dubfire вне форума
Прохожий
 
Регистрация: 10.10.2010
Сообщения: 14
Репутация: 10
По умолчанию

По указанию преподавателя выберите вариант задачи. В программе преду-смотреть сохранение вводимых данных в файле и возможность чтения из ра-нее сохраненного файла. Результаты выводить в окно просмотра и в текстовой файл.
В магазине формируется список лиц, записавшихся на покупку товара. Каждая запись этого списка содержит: порядковый номер, Ф.И.О., домашний адрес покупателя и дату постановки на учет. !!!!Удалить из списка все повторные записи, проверяя Ф.И.О. и домашний адрес.!!!!

Код:
Type Tspisok = record
        naimen:string[50];
        nomer:integer;
        adres:string[100];
        data:TdateTime;
        end;
Var Fz:file of Tspisok;
Ft:TextFile;
spisok:array[1..100] of Tspisok;
nzap:integer;
FileNameZ, FileNameT:string;
mn:integer;
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Clear;   Edit2.Clear;   Edit3.Clear;   Edit4.Clear;
   Edit5.Clear; Edit6.Clear;
   Memo1.Clear;
   Button1.Hide;
    nzap:=0;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
OpenDialog1.Title :='Создать новый файл';
 if OpenDialog1.Execute then
   begin
FileNameZ:= OpenDialog1.FileName;
AssignFile(Fz, FileNameZ);
Rewrite(Fz);
   end;
Button1.Show;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
begin
nzap:=nzap+1;
with spisok[nzap] do begin
      naimen:=Edit1.Text;
      nomer:=strtoint(Edit2.Text);
      adres:=Edit3.Text;
      data:=encodeDate(strtoint(Edit4.text),
                       strtoint(Edit5.Text),strtoint(Edit6.Text));
Memo1.lines.add(inttostr(nomer)+'  '+naimen+'  '
                           +adres+'  '+datetostr(data));
         end;
Write(Fz,spisok[nzap]);
Edit1.Clear;   Edit2.Clear;   Edit3.Clear;   Edit4.Clear;
Edit5.Clear; Edit6.Clear;
end;
  end;
procedure TForm1.Button3Click(Sender: TObject);
begin
 if OpenDialog1.Execute then begin
FileNameZ:= OpenDialog1.FileName;
AssignFile(Fz, FileNameZ);
Reset(Fz);
          end;
nzap:=0;
  while not eof(fz) do begin
nzap:=nzap+1;
Read(fz,spisok[nzap]);
with spisok[nzap] do
Memo1.Lines.Add(IntToStr(nomer)+'  '+naimen+'  '
                           +adres+'  '+DateToStr(data));
end;
     Button1.Show;
end;

procedure TForm1.Button5Click(Sender: TObject);
var i:word;
begin
  if SaveDialog1.Execute then
    begin
   FileNameT:= SaveDialog1.FileName;
    AssignFile(Ft, FileNameT);
      Rewrite(Ft);
    end;
  for i:=1 to nzap do
         with spisok[i] do  Writeln(Ft,nomer,' ',naimen,' ',adres,' ',datetostr(data));
  CloseFile(Ft);
end;
end.
я всё сделал ,осталось Удалить из списка все повторные записи, проверяя Ф.И.О. и домашний адрес.
Ответить с цитированием