Guest User

Untitled

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