Advertisement
Guest User

Untitled

a guest
Dec 9th, 2011
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 6.71 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, Math, Unit2, StdCtrls, ComCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Edit1: TEdit;
  12.     Edit2: TEdit;
  13.     Edit3: TEdit;
  14.     Memo1: TMemo;
  15.     Label1: TLabel;
  16.     Button1: TButton;
  17.     Button2: TButton;
  18.     Button3: TButton;
  19.     Button4: TButton;
  20.     Button5: TButton;
  21.     Button6: TButton;
  22.     Button7: TButton;
  23.     Button8: TButton;
  24.     Button9: TButton;
  25.     OpenDialog1: TOpenDialog;
  26.     SaveDialog1: TSaveDialog;
  27.     DateTimePicker1: TDateTimePicker;
  28.     Button10: TButton;
  29.     procedure FormCreate(Sender: TObject);
  30.     procedure Button1Click(Sender: TObject);
  31.     procedure Button2Click(Sender: TObject);
  32.     procedure Button3Click(Sender: TObject);
  33.     procedure Button4Click(Sender: TObject);
  34.     procedure Button5Click(Sender: TObject);
  35.     procedure Button6Click(Sender: TObject);
  36.     procedure Button7Click(Sender: TObject);
  37.     procedure Button8Click(Sender: TObject);
  38.     procedure Button9Click(Sender: TObject);
  39.     procedure Button10Click(Sender: TObject);
  40.   private
  41.     { Private declarations }
  42.   public
  43.     { Public declarations }
  44.   end;
  45.  
  46. var
  47.   Form1: TForm1;
  48.   _13: T_13;
  49.   iHi, iLo, p, q, i, j, k, n, m, co, X, SearchKey, SaveChecker, SearchInt: Integer;
  50.   A, B: zapmas;
  51.   w: zap;
  52.   f: File of zap;
  53.   ft: TextFile;
  54.   filename, search, Day, Month, Year, FileNameZ: String;
  55.  
  56. implementation
  57.  
  58. {$R *.dfm}
  59.  
  60. procedure TForm1.FormCreate(Sender: TObject);
  61. begin
  62.   _13 := T_13.Create;
  63.   Edit1.Text := 'Àâðààì À. À.';
  64.   Edit2.Text := 'Áåëàðóññèàí ñòðèò, 6À';
  65.   DateTimePicker1.Date := Date;
  66.   SaveChecker := 0;
  67.   n := 0;
  68. end;
  69.  
  70. procedure TForm1.Button1Click(Sender: TObject);
  71. begin
  72.   Inc(n);
  73.   SetLength(A, n);
  74.   A[Memo1.CaretPos.Y].Number := Memo1.Lines.Count+1;
  75.   A[Memo1.CaretPos.Y].Fam := Edit1.Text;
  76.   A[Memo1.CaretPos.Y].Adr := Edit2.Text;
  77.   A[Memo1.CaretPos.Y].Date := StrToInt(FormatDateTime('yymmdd', DateTimePicker1.Date));
  78.   Day := Copy(IntToStr(A[Memo1.CaretPos.Y].Date), 5, 2);
  79.   Month := Copy(IntToStr(A[Memo1.CaretPos.Y].Date), 3, 2);
  80.   Year := Copy(IntToStr(A[Memo1.CaretPos.Y].Date), 1, 2);
  81.   Memo1.Lines.Add(IntToStr(A[Memo1.CaretPos.Y].Number)+'   '+A[Memo1.CaretPos.Y].Fam+'   '+A[Memo1.CaretPos.Y].Adr+'   '+Day+'.'+Month+'.'+Year);
  82.   DateTimePicker1.Date := Date;
  83.     if (SaveChecker = 1) then begin
  84.       AssignFile(f, FileNameZ);
  85.     end else begin
  86.       AssignFile(f, SaveDialog1.FileName);
  87.       FileNameZ := SaveDialog1.FileName;
  88.       SaveChecker := 1;
  89.     end;
  90.     if (SaveChecker = 1) then begin
  91.       Reset(F);
  92.       for i := 0 to Memo1.Lines.Count-1 do begin
  93.         Write(f, A[i]);
  94.       end;
  95.       CloseFile(f);
  96.     end;
  97. end;
  98.  
  99. procedure TForm1.Button2Click(Sender: TObject);
  100. begin
  101.   Button4.Click;
  102.   if OpenDialog1.Execute then
  103.   begin
  104.     AssignFile(f, OpenDialog1.FileName);
  105.     Reset(f);
  106.   end
  107.   else Exit;
  108.   if n <> 0 then begin
  109.     n := 0;
  110.     SetLength(A, n*4);
  111.   end;
  112.   while not eof(f) do
  113.   begin
  114.     Read(f, w);
  115.     SetLength(A, SizeOf(A[n]));
  116.     A[n] := w;
  117.     Inc(n);
  118.     SetLength(A, n*4);
  119.   end;
  120.   for i := 0 to n-1 do
  121.   begin
  122.     Year := Copy(IntToStr(A[i].Date), 1, 2);
  123.     Month := Copy(IntToStr(A[i].Date), 3, 2);
  124.     Day := Copy(IntToStr(A[i].Date), 5, 2);
  125.     Memo1.Lines.Add((IntToStr(Memo1.CaretPos.Y+1))+'   '+A[i].Fam+'   '+A[i].Adr+'   '+Day+'.'+Month+'.'+Year);
  126.   end;
  127.   CloseFile(f);
  128. end;
  129.  
  130. procedure TForm1.Button3Click(Sender: TObject);
  131. begin
  132.   SaveDialog1.Title := 'Ñîõðàíèòü áàçó';
  133.   SaveDialog1.DefaultExt := 'dat';
  134.   if SaveDialog1.Execute then
  135.     begin
  136.       AssignFile(f, SaveDialog1.FileName);
  137.       Rewrite(f);
  138.     end
  139.   else Exit;
  140.   for i := 0 to Memo1.Lines.Count-1 do Write(f, A[i]);
  141.   CloseFile(f);
  142. end;
  143.  
  144. procedure TForm1.Button4Click(Sender: TObject);
  145. begin
  146.   Memo1.Clear;
  147.   DateTimePicker1.Date := Date;
  148.   n := 0;
  149.   FreeMem(A);
  150. end;
  151.  
  152. procedure TForm1.Button5Click(Sender: TObject);
  153. begin
  154.   Day := Copy((FormatDateTime('yymmdd', DateTimePicker1.Date)), 5, 2);
  155.   Month := Copy((FormatDateTime('yymmdd', DateTimePicker1.Date)), 3, 2);
  156.   Year := Copy((FormatDateTime('yymmdd', DateTimePicker1.Date)), 1, 2);
  157.   Memo1.Lines[Memo1.CaretPos.Y] := (IntToStr(Memo1.CaretPos.Y+1)+'   '+(Edit1.Text)+'   '+(Edit2.Text)+'   '+Day+'.'+Month+'.'+Year);
  158.   A[Memo1.CaretPos.Y].Number := (Memo1.CaretPos.Y+1);
  159.   A[Memo1.CaretPos.Y].Fam := Edit1.Text;
  160.   A[Memo1.CaretPos.Y].Adr := Edit2.Text;
  161.   A[Memo1.CaretPos.Y].Date := StrToInt(FormatDateTime('yymmdd', DateTimePicker1.Date));
  162. end;
  163.  
  164. procedure TForm1.Button6Click(Sender: TObject);
  165. begin
  166.   n := Memo1.Lines.Count;
  167.   SetLength(A, n);
  168.   iLo := 0;
  169.   iHi := Form1.Memo1.Lines.Count-1;
  170.   Memo1.Clear;
  171.   _13.Memo1 := Memo1;
  172.   _13.A := A;
  173.   SetLength(_13.A, n);
  174.   _13.qSort(iLo, iHi, A);
  175.   for i := 0 to n-1 do
  176.   begin
  177.     Day := Copy(IntToStr(A[i].Date), 5, 2);
  178.     Month := Copy(IntToStr(A[i].Date), 3, 2);
  179.     Year := Copy(IntToStr(A[i].Date), 1, 2);
  180.     Memo1.Lines.Add((IntToStr(Memo1.CaretPos.Y+1))+'   '+A[i].Fam+'   '+A[i].Adr+'   '+Day+'.'+Month+'.'+Year);
  181.   end;
  182. end;
  183.  
  184. procedure TForm1.Button7Click(Sender: TObject);
  185. begin
  186.   Memo1.Clear;
  187.   for i := 0 to n-1 do begin
  188.     for j := 0 to n-1 do begin
  189.       if (i <> j) and (A[i].Fam = A[j].Fam) then begin
  190.         for k := j to n-1 do begin
  191.           A[k].number := A[k+1].number;
  192.           A[k].Fam := A[k+1].Fam;
  193.           A[k].Adr := A[k+1].Adr;
  194.           A[k].Date := A[k].Date;
  195.         end;
  196.         Dec(n);
  197.         SetLength(A, n);
  198.       end;
  199.     end;
  200.   end;
  201.   for i := 0 to n-1 do
  202.   begin
  203.     Year := Copy(IntToStr(A[n].Date), 1, 2);
  204.     Month := Copy(IntToStr(A[n].Date), 3, 2);
  205.     Day := Copy(IntToStr(A[n].Date), 5, 2);
  206.     Memo1.Lines.Add((IntToStr(Memo1.CaretPos.Y+1))+'   '+A[i].Fam+'   '+A[i].Adr+'   '+Day+'.'+Month+'.'+Year);
  207.   end;
  208. end;
  209.  
  210. procedure TForm1.Button8Click(Sender: TObject);
  211. begin
  212.   SearchKey := 0;
  213.   Search := Edit3.Text;
  214.   _13.Edit3 := Edit3;
  215.   _13.Search := Search;
  216.   _13.n := n;
  217.   _13.LineSearch(A);
  218. end;
  219.  
  220. procedure TForm1.Button9Click(Sender: TObject);
  221. begin
  222.   X := StrToInt(Edit3.Text);
  223.   _13.BinaryFind(X, A);
  224. end;
  225.  
  226. procedure TForm1.Button10Click(Sender: TObject);
  227. begin
  228.   n := Memo1.Lines.Count;
  229.   SetLength(A, n);
  230.   p := 0;
  231.   q := Form1.Memo1.Lines.Count-1;
  232.   Memo1.Clear;
  233.   _13.Memo1 := Memo1;
  234.   _13.A := A;
  235.   SetLength(_13.A, n);
  236.   SetLength(_13.B, n);
  237.   _13.Sort(p, q, A);
  238.   for i := 0 to n-1 do
  239.   begin
  240.     Day := Copy(IntToStr(A[i].Date), 5, 2);
  241.     Month := Copy(IntToStr(A[i].Date), 3, 2);
  242.     Year := Copy(IntToStr(A[i].Date), 1, 2);
  243.     Memo1.Lines.Add((IntToStr(Memo1.CaretPos.Y+1))+'   '+A[i].Fam+'   '+A[i].Adr+'   '+Day+'.'+Month+'.'+Year);
  244.   end;
  245. end;
  246.  
  247. end.
  248.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement