procedure TForm1.POISKClick(Sender: TObject);
var z,s, x2,x,x1, y:string;
search,zapolnenie:Boolean;
i,l:integer;
begin
AssignFile(f,'1.txt.txt');
reset(f);
numzap:=0;
Kolfind:=0;
search:=false;
for I := 0 to tabliza.RowCount - 1 do
tabliza.Rows[I].Clear;
while not Eof(f) do
begin
readln (f,x);
zapolnenie:=false;
if (copy(x,1,2)='**') and (copy(x,length(x)-1,2)='**') and (x <>'****') then
numzap:=strtointdef(Copy(x,3,length(x)-4),0);
if copy (x,1,9)= '{caption}' then
begin
Delete(x,1,9);
zagolovok:=x;
end;
if copy (x,1,8)='{addstr}' then
begin
delete(x,1,8);
if Vyb1.ItemIndex=0 then //0-начинается
begin
y:=Poisk1.Text;
y:=' '+AnsiLowerCase(Trim(y));
x1:=' '+AnsiLowerCase(Trim(x));
end;
if Vyb1.ItemIndex=1 then //1-содержит
begin
y:=Poisk1.Text;
y:=AnsiLowerCase(Trim(y));
x1:=AnsiLowerCase(Trim(x));
end;
if Vyb1.ItemIndex=2 then //2-равно
begin
y:=Poisk1.Text;
y:=' '+AnsiLowerCase(Trim(y))+' ';
x1:=' '+ AnsiLowerCase(Trim(x))+' ';
end;
if Vyb2.ItemIndex=0 then//начинается
begin
z:=poisk2.Text;
z:=' '+AnsiLowerCase(trim(z));
x2:=' '+AnsiLowerCase(trim(x));
end;
if Vyb2.ItemIndex=1 then//содержит
begin
z:=poisk2.Text;
z:=AnsiLowerCase(trim(z));
x2:=AnsiLowerCase(trim(x));
end;
if Vyb2.ItemIndex=2 then//равно
begin
z:=poisk2.Text;
z:=' '+AnsiLowerCase(trim(z))+' ';
x2:=' '+AnsiLowerCase(trim(x))+' ';
end;
end;
if copy (x,1,9)='{addstr2}' then
begin
delete(x,1,9);
if Vyb1.ItemIndex=0 then //0-начинается
begin
y:=Poisk1.Text;
y:=' '+AnsiLowerCase(Trim(y));
x1:=' '+AnsiLowerCase(Trim(x));
end;
if Vyb1.ItemIndex=1 then //1-содержит
begin
y:=Poisk1.Text;
y:=AnsiLowerCase(Trim(y));
x1:=AnsiLowerCase(Trim(x));
end;
if Vyb1.ItemIndex=2 then //2-равно
begin
y:=Poisk1.Text;
y:=' '+AnsiLowerCase(Trim(y))+' ';
x1:=' '+ AnsiLowerCase(Trim(x))+' ';
end;
if Vyb2.ItemIndex=0 then//начинается
begin
z:=poisk2.Text;
z:=' '+AnsiLowerCase(trim(z));
x2:=' '+AnsiLowerCase(trim(x));
end;
if Vyb2.ItemIndex=1 then//содержит
begin
z:=poisk2.Text;
z:=AnsiLowerCase(trim(z));
x2:=AnsiLowerCase(trim(x));
end;
if Vyb2.ItemIndex=2 then//равно
begin
z:=poisk2.Text;
z:=' '+AnsiLowerCase(trim(z))+' ';
x2:=' '+AnsiLowerCase(trim(x))+' ';
end;
end;
if Alternativa.ItemIndex=0 then
if Poisk2.Text<>'' then
begin
if (pos(y,x1)>0) and (pos(z,x2)>0) then search:=true;
{if (pos(y,x1)>0) and (pos(z,x2)>0) and ((vyb1.ItemIndex=1)or(vyb1.ItemIndex=0)) and ((vyb2.ItemIndex=1)or(vyb2.ItemIndex=0)) then search:=true;
if (pos(y,x1)=0) and (pos(z,x2)=0) and (vyb1.ItemIndex=2) and (vyb2.ItemIndex=2) then search:=true;
if (pos(y,x1)>0) and (z=x2) and ((vyb1.ItemIndex=1)or(vyb1.ItemIndex=0)) and (vyb2.ItemIndex=2) then search:=true;
if (y=x1) and (pos(z,x2)>0) and (vyb1.ItemIndex=2) and ((vyb2.ItemIndex=1)or(vyb2.ItemIndex=0)) then search:=true;}
// caption:=caption+inttostr(Kolfind)+'!';
end
else
begin
if (pos(y,x1)>0) and ((vyb1.ItemIndex=0)or(vyb1.ItemIndex=1)) then search:=true;
if (y=x1) and (vyb1.ItemIndex=2) then search:=true;
end;
if Alternativa.ItemIndex=1 then
if Poisk2.Text<>'' then
begin
if (pos(y,x1)>0) or (pos(z,x2)>0) then search:=true;
end
else
begin
if (pos(y,x1)>0) and ((vyb1.ItemIndex=0)or(vyb1.ItemIndex=1)) then search:=true;
if (y=x1) and (vyb1.ItemIndex=2) then search:=true;
end;
// caption:=caption+inttostr(Kolfind)+'!';
{
else
if Trim(Poisk1.Text)='' then
begin
if pos(z,x2)>0 then
search:=true;
// Kolfind:=Kolfind+1;
end;
if Trim(Poisk2.Text)='' then
begin
if pos(y,x1)>0 then
search:=true;
// Kolfind:=Kolfind+1;
end;
end;
}
{ if Alternativa.ItemIndex=1 then
begin
if (pos(y,x1)>0) or (pos(z,x2)>0) then
begin
search:=true;
// Kolfind:=Kolfind+1;
end;
if Trim(Poisk1.Text)='' then
begin
if pos(y,x2)>0 then
search:=true;
// Kolfind:=Kolfind+1;
end;
if Trim(Poisk2.Text)='' then
begin
if pos(z,x1)>0 then
search:=true;
// Kolfind:=Kolfind+1;
end;
end;
}
// end;
if x='****' then zapolnenie:=true;
if zapolnenie and search then
begin
Kolfind:=Kolfind+1;
Tabliza.RowCount:=Kolfind+1;
Tabliza.Cells[0,kolfind]:=inttostr(Kolfind);
Tabliza.Cells[1,Kolfind]:=zagolovok;
Tabliza.Cells[2,Kolfind]:=inttostr(numzap);
{s:=zagolovok+'!!!'+inttostr(numzap);
listbox1.Items.Add(s);}
zapolnenie:=false;
search:=false;
end;
(**)
end;
{for i:=1 to kolfind do
begin
s:=listbox1.items[i-1];
L:=pos('!!!',s);
tabliza.Cells[1,i]:=copy(s,1,L-1);
delete(s,1,L+2);
tabliza.Cells[2,i]:=s;
end;}
CloseFile(f);
end;