Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, Math, Unit2, StdCtrls, ComCtrls;
- type
- TForm1 = class(TForm)
- Edit1: TEdit;
- Edit2: TEdit;
- Edit3: TEdit;
- Memo1: TMemo;
- Label1: TLabel;
- Button1: TButton;
- Button2: TButton;
- Button3: TButton;
- Button4: TButton;
- Button5: TButton;
- Button6: TButton;
- Button7: TButton;
- Button8: TButton;
- Button9: TButton;
- OpenDialog1: TOpenDialog;
- SaveDialog1: TSaveDialog;
- DateTimePicker1: TDateTimePicker;
- procedure FormCreate(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- procedure Button4Click(Sender: TObject);
- procedure Button5Click(Sender: TObject);
- procedure Button6Click(Sender: TObject);
- procedure Button7Click(Sender: TObject);
- procedure Button8Click(Sender: TObject);
- procedure Button9Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- _13: T_13;
- iHi, iLo: Integer;i, j, k, n, m, co, X, SearchKey, SaveChecker, SearchInt: Integer;
- A, A1, B: zapmas;
- w: zap;
- f: File of zap;
- ft: TextFile;
- filename, search, Day, Month, Year, FileNameZ: String;
- implementation
- {$R *.dfm}
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- _13 := T_13.Create;
- Edit1.Text := 'Àâðààì À. À.';
- Edit2.Text := 'Áåëàðóññèàí ñòðèò, 6À';
- DateTimePicker1.Date := Date;
- SaveChecker := 0;
- n := 0;
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- Inc(n);
- //SetLength(A, n);
- GetMem(A, n*SizeOf(zap));
- A[Memo1.CaretPos.Y].Number := Memo1.Lines.Count+1;
- A[Memo1.CaretPos.Y].Fam := Edit1.Text;
- A[Memo1.CaretPos.Y].Adr := Edit2.Text;
- A[Memo1.CaretPos.Y].Date := StrToInt(FormatDateTime('yymmdd', DateTimePicker1.Date));
- Day := Copy(IntToStr(A[Memo1.CaretPos.Y].Date), 5, 2);
- Month := Copy(IntToStr(A[Memo1.CaretPos.Y].Date), 3, 2);
- Year := Copy(IntToStr(A[Memo1.CaretPos.Y].Date), 1, 2);
- Memo1.Lines.Add(IntToStr(A[Memo1.CaretPos.Y].Number)+' '+A[Memo1.CaretPos.Y].Fam+' '+A[Memo1.CaretPos.Y].Adr+' '+Day+'.'+Month+'.'+Year);
- DateTimePicker1.Date := Date;
- if (SaveChecker = 1) then begin
- AssignFile(f, FileNameZ);
- end else begin
- AssignFile(f, SaveDialog1.FileName);
- FileNameZ := SaveDialog1.FileName;
- SaveChecker := 1;
- end;
- if (SaveChecker = 1) then begin
- Reset(F);
- for i := 0 to Memo1.Lines.Count-1 do begin
- Write(f, A[i]);
- end;
- CloseFile(f);
- end;
- end;
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- Button4.Click;
- if OpenDialog1.Execute then
- begin
- AssignFile(f, OpenDialog1.FileName);
- Reset(f);
- end
- else Exit;
- if n <> 0 then begin
- n := 0;
- //SetLength(A, n*4);
- GetMem(A1, SizeOf(zap)*n);
- for i := 1 to n do A1[i] := A[i];
- Freemem(A);
- A := A1;
- end;
- while not eof(f) do
- begin
- Read(f, w);
- //SetLength(A, SizeOf(A[n]));
- GetMem(A1, SizeOf(zap)*n);
- for i := 1 to n do A1[i] := A[i];
- Freemem(A);
- A := A1;
- A[n] := w;
- Inc(n);
- //SetLength(A, n*4);
- GetMem(A1, SizeOf(zap)*n);
- for i := 1 to n do A1[i] := A[i];
- Freemem(A);
- A := A1;
- end;
- for i := 0 to n-1 do
- begin
- Year := Copy(IntToStr(A[i].Date), 1, 2);
- Month := Copy(IntToStr(A[i].Date), 3, 2);
- Day := Copy(IntToStr(A[i].Date), 5, 2);
- Memo1.Lines.Add((IntToStr(Memo1.CaretPos.Y+1))+' '+A[i].Fam+' '+A[i].Adr+' '+Day+'.'+Month+'.'+Year);
- end;
- CloseFile(f);
- end;
- procedure TForm1.Button3Click(Sender: TObject);
- begin
- SaveDialog1.Title := 'Ñîõðàíèòü áàçó';
- SaveDialog1.DefaultExt := 'dat';
- if SaveDialog1.Execute then
- begin
- AssignFile(f, SaveDialog1.FileName);
- Rewrite(f);
- end
- else Exit;
- for i := 0 to Memo1.Lines.Count-1 do Write(f, A[i]);
- CloseFile(f);
- end;
- procedure TForm1.Button4Click(Sender: TObject);
- begin
- Memo1.Clear;
- DateTimePicker1.Date := Date;
- n := 0;
- //SetLength(A, n);
- GetMem(A, n*SizeOf(zap));
- end;
- procedure TForm1.Button5Click(Sender: TObject);
- begin
- Day := Copy((FormatDateTime('yymmdd', DateTimePicker1.Date)), 5, 2);
- Month := Copy((FormatDateTime('yymmdd', DateTimePicker1.Date)), 3, 2);
- Year := Copy((FormatDateTime('yymmdd', DateTimePicker1.Date)), 1, 2);
- Memo1.Lines[Memo1.CaretPos.Y] := (IntToStr(Memo1.CaretPos.Y+1)+' '+(Edit1.Text)+' '+(Edit2.Text)+' '+Day+'.'+Month+'.'+Year);
- A[Memo1.CaretPos.Y].Number := (Memo1.CaretPos.Y+1);
- A[Memo1.CaretPos.Y].Fam := Edit1.Text;
- A[Memo1.CaretPos.Y].Adr := Edit2.Text;
- A[Memo1.CaretPos.Y].Date := StrToInt(FormatDateTime('yymmdd', DateTimePicker1.Date));
- end;
- procedure TForm1.Button6Click(Sender: TObject);
- begin
- n := Memo1.Lines.Count;
- //SetLength(A, n);
- GetMem(A, n*SizeOf(zap));
- iLo := 0;
- iHi := Form1.Memo1.Lines.Count-1;
- Memo1.Clear;
- _13.Memo1 := Memo1;
- _13.A := A;
- //SetLength(_13.A, n);
- GetMem(A, n*SizeOf(zap));
- _13.qSort(iLo, iHi);
- for i := 0 to n-1 do
- begin
- Day := Copy(IntToStr(A[i].Date), 5, 2);
- Month := Copy(IntToStr(A[i].Date), 3, 2);
- Year := Copy(IntToStr(A[i].Date), 1, 2);
- Memo1.Lines.Add((IntToStr(Memo1.CaretPos.Y+1))+' '+A[i].Fam+' '+A[i].Adr+' '+Day+'.'+Month+'.'+Year);
- end;
- end;
- procedure TForm1.Button7Click(Sender: TObject);
- begin
- Memo1.Clear;
- for i := 0 to n-1 do begin
- for j := 0 to n-1 do begin
- if (i <> j) and (A[i].Fam = A[j].Fam) then begin
- for k := j to n-1 do begin
- A[k].number := A[k+1].number;
- A[k].Fam := A[k+1].Fam;
- A[k].Adr := A[k+1].Adr;
- A[k].Date := A[k].Date;
- end;
- Dec(n);
- SetLength(A, n);
- end;
- end;
- end;
- for i := 0 to n-1 do
- begin
- Year := Copy(IntToStr(A[n].Date), 1, 2);
- Month := Copy(IntToStr(A[n].Date), 3, 2);
- Day := Copy(IntToStr(A[n].Date), 5, 2);
- Memo1.Lines.Add((IntToStr(Memo1.CaretPos.Y+1))+' '+A[i].Fam+' '+A[i].Adr+' '+Day+'.'+Month+'.'+Year);
- end;
- end;
- procedure TForm1.Button8Click(Sender: TObject);
- begin
- SearchKey := 0;
- Search := Edit3.Text;
- _13.LineSearch(SearchKey, n, Search, Memo1, Edit3, A);
- end;
- procedure TForm1.Button9Click(Sender: TObject);
- begin
- X := StrToInt(Edit3.Text);
- _13.BinaryFind(X, A);
- end;
- end.
Add Comment
Please, Sign In to add comment