unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, math; type TForm1 = class(TForm) MainMenu1: TMainMenu; File1: TMenuItem; OPen1: TMenuItem; Open2: TMenuItem; Saveas1: TMenuItem; N1: TMenuItem; Exit1: TMenuItem; Edit1: TMenuItem; Copy1: TMenuItem; Paste1: TMenuItem; Help1: TMenuItem; About1: TMenuItem; Memo1: TMemo; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Save1: TMenuItem; N2: TMenuItem; procedure FormCreate(Sender: TObject); procedure Open2Click(Sender: TObject); procedure OPen1Click(Sender: TObject); procedure Memo1Change(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure Saveas1Click(Sender: TObject); procedure Save1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure About1Click(Sender: TObject); procedure Copy1Click(Sender: TObject); procedure Paste1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; s:string; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin form1.Caption:='MegaBlockNot - new file'; s:=''; memo1.Clear; memo1.Align:=alclient; memo1.Modified:=false; save1.Enabled:=false; end; {procedure tform1.save; begin if s='' then begin if savedialog1.Execute then begin s:=savedialog1.FileName; memo1.Lines.SaveToFile(s); memo1.Modified:=false; end else exit; end else memo1.Lines.SaveToFile(s); end; } procedure TForm1.Open2Click(Sender: TObject); begin If memo1.Modified then begin case messagedlg('Текущий файл изменен, сохранить?',mtconfirmation, [mbyes,mbno,mbcancel],0) of idyes: begin if s='' then begin if savedialog1.Execute then begin s:=savedialog1.FileName; memo1.Lines.SaveToFile(s); memo1.Modified:=false; end else exit; end else memo1.Lines.SaveToFile(s);; end; idcancel: abort; end; end; if opendialog1.Execute then begin s:=opendialog1.filename; memo1.Lines.LoadFromFile(s); form1.Caption:='MegaBlockNot '+'"'+s+'"'; memo1.Modified:=false; save1.Enabled:=false; end; end; procedure TForm1.OPen1Click(Sender: TObject); begin If memo1.Modified then begin case messagedlg('Текущий файл изменен, сохранить?',mtconfirmation, [mbyes,mbno,mbcancel],0) of idyes: begin if s='' then begin if savedialog1.Execute then begin s:=savedialog1.FileName; memo1.Lines.SaveToFile(s); memo1.Modified:=false; end else exit; end else memo1.Lines.SaveToFile(s);; end; idcancel: abort; end; end; memo1.Clear; save1.Enabled:=false; s:=''; form1.Caption:='MegaBlockNot - new file' end; procedure TForm1.Memo1Change(Sender: TObject); begin save1.Enabled:=true; end; procedure TForm1.Exit1Click(Sender: TObject); begin If memo1.Modified then begin case messagedlg('Текущий файл изменен, сохранить?',mtconfirmation, [mbyes,mbno,mbcancel],0) of idyes: begin if s='' then begin if savedialog1.Execute then begin s:=savedialog1.FileName; memo1.Lines.SaveToFile(s); memo1.Modified:=false; close; end else exit; end else begin memo1.Lines.SaveToFile(s);application.Terminate;end; end; idno: application.Terminate; idcancel: abort; end; end else application.Terminate; end; procedure TForm1.N2Click(Sender: TObject); begin If memo1.Modified then begin case messagedlg('Текущий файл изменен, сохранить?',mtconfirmation, [mbyes,mbno,mbcancel],0) of idyes: begin if s='' then begin if savedialog1.Execute then begin s:=savedialog1.FileName; memo1.Lines.SaveToFile(s); memo1.Modified:=false; end else exit; end else begin memo1.Lines.SaveToFile(s); memo1.Modified:=false; end; end; idcancel: abort; end; end; memo1.Clear; save1.Enabled:=false; s:=''; form1.Caption:='MegaBlockNot - new file' end; procedure TForm1.Saveas1Click(Sender: TObject); begin if savedialog1.Execute then begin s:=savedialog1.FileName; memo1.Lines.SaveToFile(s); memo1.Modified:=false; save1.Enabled:=false; form1.Caption:='MegaBlockNot '+'"'+s+'"'; end; end; procedure TForm1.Save1Click(Sender: TObject); begin if s='' then begin Saveas1.Click; end else begin memo1.Lines.SaveToFile(s); memo1.Modified:=false; save1.Enabled:=false; end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin action:=canone; exit1.Click; end; procedure TForm1.About1Click(Sender: TObject); begin showmessage('Pashinin S.A.') end; procedure TForm1.Copy1Click(Sender: TObject); var k,i,j,c,mm:integer; fio,fio2,m:string; begin c:=memo1.lines.count-1; k:=0; while kfio2 then begin mm:=i; fio:=fio2; end; end; m:=memo1.Lines.Strings[k]; memo1.Lines.Strings[k]:=memo1.Lines.Strings[mm]; memo1.Lines.Strings[mm]:=m; inc(k); end; end; procedure TForm1.Paste1Click(Sender: TObject); var mask,fio:string; i,k:integer; function check(mask,str:string):boolean; var t,tt,i,before,after:integer; begin before:=pos('*',mask)-1; after:=length(mask)-before-1; mask:=ansilowercase(mask); str:=ansilowercase(str); result:=true; for i:=1 to before do if mask[i]<>'?' then if mask[i]<>str[i] then begin result:=false; exit end; t:=length(str)-after+1; tt:=length(mask)-after+1; //showmessage(inttostr(tt)); for i:=0 to after-1 do if mask[tt+i]<>'?' then if mask[tt+i]<>str[t+i] then begin result:=false; exit end; end; begin mask:=inputbox('mask','enter the mask','*в'); if mask='' then begin showmessage('Сказано ведь, введи маску!!!'); exit; end; k:=memo1.Lines.Count-1; i:=0; while i<=k do begin fio:=copy(memo1.Lines.Strings[i],15,12); fio:=copy(fio,1,pos(' ',fio)-1); //showmessage('"'+fio+'"'); if not check(mask,fio) then begin memo1.Lines.Delete(i); k:=memo1.Lines.Count-1; end else begin inc(i); end; end; end; end.