Скачиваний:
78
Добавлен:
04.03.2014
Размер:
4.49 Кб
Скачать
unit Unit3;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Grids;

type
Mas=Array [1..50] of string;
TForm3 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Memo1: TMemo;
procedure N10Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;

implementation
var sf:string;

{$R *.dfm}



procedure TForm3.N10Click(Sender: TObject);//Выборка по маске
var f: textfile; mas:string; r:string[100]; i,k:integer; y,zap:boolean;
begin
Memo1.Clear; //очищаем Мемо
if opendialog1.execute then
begin
sf:=opendialog1.FileName;
form3.Caption:=sf;
end; // 1)Выбираем файл, с которым будем работать

Assignfile(f,sf); reset(f);
mas:=InputBox('Ввод маски','Введите маску из 1 символа:','');

Memo1.Lines[0]:='Маcка - символ "'+mas+'".';
k:=1; zap:=false;

while not Eof(f) do begin
readln(f,r); i:=8; y:=false;

while y=false do begin
i:=i+1;
if r[i]=mas[1] then begin
Memo1.Lines.Add(inttostr(k)+' '+r);
k:=k+1; y:=true; zap:=true; end;
if i=21 then y:=true;
//Просматриваем каждую строку файла
//И оттправляем в Мемо, если символ совпадает
end;
end;
Closefile(f);

if zap=false then Memo1.Lines.Add('Совпадений не нашлось :/');

end;



procedure TForm3.N2Click(Sender: TObject);
begin
memo1.Clear;
sf:='';
form3.caption:='form3';
end;

procedure TForm3.N3Click(Sender: TObject);
begin
if memo1.modified then
case messagedlg('текст был изменен?'+#13+
'сохранить его?', mtconfirmation,[mbyes, mbno,mbcancel],0) of
mryes: n6click(self);
mrNo:;
mrCancel:exit;
end;
if opendialog1.execute then
begin
sf:=opendialog1.FileName;
memo1.Lines.LoadFromFile(sf);
form3.Caption:='form3'+' '+sf;
memo1.Modified:=false;
end;
end;

procedure TForm3.N4Click(Sender: TObject);
begin
if memo1.modified then
case messagedlg('текст был изменен?'+#13+
'сохранить его?', mtconfirmation,[mbyes, mbno,mbcancel],0) of
mryes: n5click(self);

mrNo:
begin
memo1.Clear;
form3.caption:='form1';
end;

mrCancel:exit;
end;
end;


procedure TForm3.N5Click(Sender: TObject);
begin
if sf='' then
n6click(self)
else
begin
memo1.lines.savetofile(sf);
memo1.Modified:=false;
end;
end;

procedure TForm3.N6Click(Sender: TObject);
begin
if savedialog1.Execute then
begin
sf:= savedialog1.FileName;
memo1.lines.savetofile(sf);
form3.Caption:='form3'+' '+sf;
memo1.Modified:=false;
end;
end;

procedure TForm3.N7Click(Sender: TObject);
begin
if memo1.modified then
case messagedlg('текст был изменен?'+#13+
'сохранить его?', mtconfirmation,[mbyes, mbno,mbcancel],0) of
mryes: n6click(self);
mrNo:;
mrCancel:exit;
end;
close;
end;


procedure TForm3.N9Click(Sender: TObject); //Процедура сортировки
var num,r:string; i,k,j:integer;
begin

if opendialog1.execute then
begin
sf:=opendialog1.FileName;
memo1.Lines.LoadFromFile(sf);
form3.Caption:=sf;
memo1.Modified:=false;
end; // 1) загружаем исходный файл в окно редактора


// 2)Вместо очистки файла создадим новый, чтобы не испортить исходный :)

k:=1; i:=1;
while k<>0 do begin
k:=0; for j:=0 to (Memo1.Lines.Count - i)-1 do
if Memo1.Lines[j]>Memo1.Lines[j+1] then
begin
r:=memo1.lines[j];
memo1.lines[j]:=memo1.lines[j+1];
memo1.lines[j+1]:=r; k:=k+1;
end; i:=i+1; end; //Отсортировали в Мемо строки по фамилиям

for i := 0 to Memo1.Lines.Count do begin
num:=Memo1.Lines[i];
Memo1.Lines[i]:=inttostr(i+1)+' '+ num; end; //Добавляем номера к фамилиям

Memo1.lines.savetofile('Сортированный список. txt');
//Записываем сортированный список в НОВЫЙ ФАЙЛ, чтобы не испортить старый :)

end;






end.
Соседние файлы в папке Текстовый редактор с маской
  • #
    04.03.2014188 б79Project2.dpr
  • #
    04.03.20144.4 Кб79Project2.res
  • #
    04.03.2014163 б78spisok_otsenok.txt
  • #
    04.03.20149.5 Кб78Unit3.dcu
  • #
    04.03.20142.28 Кб78Unit3.dfm
  • #
    04.03.20144.49 Кб78Unit3.pas
  • #
    04.03.20143 б78Сортированный список. txt