📄 apz.~pas
字号:
else
item.subitems.Add('是') ;
end;
procedure judge4(z,ib,g:integer;liename1,liename2,liename3,liename4:string;var countofD:integer;var D:array of string); //判断四项冗余项的嵌套过程
begin //细心:var D:array of string
if (ib>=g) //如果并发数小于g,判定为冗余项
then
begin
item.subitems.Add('否') ;
D[4*countofD]:=liename1 ;
D[4*countofD+1]:=liename2;
D[4*countofD+2]:=liename3;
D[4*countofD+3]:=liename4;
countofD:=z+1 ;
end
else
item.subitems.Add('是') ;
end;
procedure judge5(z,ib,g:integer;liename1,liename2,liename3,liename4,liename5:string;var countofE:integer;var E:array of string); //判断五项冗余项的嵌套过程
begin //细心:var E:array of string
if (ib>=g) //如果并发数小于g,判定为冗余项
then
begin
item.subitems.Add('否') ;
E[5*countofE]:=liename1 ;
E[5*countofE+1]:=liename2;
E[5*countofE+2]:=liename3;
E[5*countofE+3]:=liename4;
E[5*countofE+4]:=liename5;
countofE:=z+1 ;
end
else
item.subitems.Add('是') ;
end;
procedure judge6(z,ib,g:integer;liename1,liename2,liename3,liename4,liename5,liename6:string;var countofF:integer;var F:array of string); //判断五项冗余项的嵌套过程
begin //细心:var E:array of string
if (ib>=g) //如果并发数小于g,判定为冗余项
then
begin
item.subitems.Add('否') ;
F[6*countofE]:=liename1 ;
F[6*countofE+1]:=liename2;
F[6*countofE+2]:=liename3;
F[6*countofE+3]:=liename4;
F[6*countofE+4]:=liename5;
F[6*countofE+5]:=liename6;
countofF:=z+1 ;
end
else
item.subitems.Add('是') ;
end;
begin //主程序的开始位置
if editgate.Text=''
then
messagedlg('请输入域值',mtError,[mbok],0)
else
try
with adoquery1 do
begin
g:=strtoint(editgate.Text);
sql.clear;
sql.add('select * from tjE_g ');
open;
listview1.Items.BeginUpdate; //开始更新
try
listview1.items.clear;
setvalue(re,ig,il,zxd,ibl,i,ib);
itnb:=0;
first;
while not eof do //是否读到dataset的最后一条记录
begin //计算糖尿病患者总数
if (fieldbyname('tnb').AsVariant='1')
then
itnb:=itnb+1
else
itnb:=itnb;
next; //读dataset的下一条记录
end ;
countofA:=0;
Setlength(A,50);
for v:=0 to 40 do //按列扫描(单列扫描)
begin
first; //返回dataset的第一条记录
while not eof do //按行扫描
begin
onelie(i,ib,lie1array[v],i,ib) ;
next
end;
if (i<>0) then
transtr(i,ib,itnb,ibl,zxd,il,j,jil,jib,jibl,jzxd);
item := listview1.items.add;
fillTable(lie1array[v],j,jil,jib,jibl,jzxd);
judge1(countofA,ib,g,lie1array[v],countofA,A);
setvalue(re,ig,il,zxd,ibl,i,ib);
end; //此时A中有(countA)个元素
k:=-1;
Setlength(H,1000);
for m:=0 to countofA-1 do //由A产生侯选项数组H (1->2)
begin
for n:=m+1 to countofA-1 do //保证没有重项
begin
k:=k+1;
H[2*k]:=A[m];
H[2*k+1]:=A[n];
end;
end;
countofB:=0;
Setlength(B,1000);
for v:=0 to k do //按列扫描 (双列扫描)
begin
first; //返回dataset的第一条记录
while not eof do //按行扫描
begin
twolie(i,ib,H[2*v],H[2*v+1],i,ib) ;
next
end;
if (i<>0) then
transtr(i,ib,itnb,ibl,zxd,il,j,jil,jib,jibl,jzxd);
item := listview1.items.add;
fillTable(H[2*v]+'&'+H[2*v+1],j,jil,jib,jibl,jzxd);
judge2(countofB,ib,g,H[2*v],H[2*v+1],countofB,B);
setvalue(re,ig,il,zxd,ibl,i,ib);
end; //此时B中有2*(countB)个元素
k:=-1;
Setlength(H,1000);
for v:=0 to 999 do
H[v]:=''; //初始化H
for m:=0 to countofB-1 do //由B产生侯选项数组H (2->3)
begin
for n:=m+1 to countofB-1 do
begin
if B[2*m]=B[2*n]
then
begin
k:=k+1;
H[3*k]:=B[2*m];
H[3*k+1]:=B[2*m+1];
H[3*k+2]:=B[2*n+1];
end;
end;
end;
countofC:=0;
Setlength(C,1000);
for v:=0 to k do //按列扫描 (三列扫描)
begin
first; //返回dataset的第一条记录
while not eof do //按行扫描
begin
threelie(i,ib,H[3*v],H[3*v+1],H[3*v+2],i,ib) ;
next
end;
if (i<>0) then
transtr(i,ib,itnb,ibl,zxd,il,j,jil,jib,jibl,jzxd);
item := listview1.items.add;
fillTable(H[3*v]+'&'+H[3*v+1]+'&'+H[3*v+2],j,jil,jib,jibl,jzxd);
judge3(countofC,ib,g,H[3*v],H[3*v+1],H[3*v+2],countofC,C);
setvalue(re,ig,il,zxd,ibl,i,ib);
end; //此时C中有3*(countC)个元素
k:=-1;
Setlength(H,1000);
for v:=0 to 999 do
H[v]:=''; //初始化H
for m:=0 to countofC-1 do //由C产生侯选项数组H (3->4)
begin
for n:=m+1 to countofC-1 do
begin
if (C[3*m]=C[3*n])and (C[3*m+1]=C[3*n+1])
then
begin
k:=k+1;
H[4*k]:=C[3*m];
H[4*k+1]:=C[3*m+1];
H[4*k+2]:=C[3*m+2];
H[4*k+3]:=C[3*n+2];
end;
end;
end;
countofD:=0;
Setlength(D,1000);
for v:=0 to k do //按列扫描 (四列扫描)
begin
first; //返回dataset的第一条记录
while not eof do //按行扫描
begin
fourlie(i,ib,H[4*v],H[4*v+1],H[4*v+2],H[4*v+3],i,ib) ;
next
end;
if (i<>0) then
transtr(i,ib,itnb,ibl,zxd,il,j,jil,jib,jibl,jzxd);
item := listview1.items.add;
fillTable(H[4*v]+'&'+H[4*v+1]+'&'+H[4*v+2]+'&'+H[4*v+3],j,jil,jib,jibl,jzxd);
judge4(countofD,ib,g,H[4*v],H[4*v+1],H[4*v+2],H[4*v+3],countofD,D);
setvalue(re,ig,il,zxd,ibl,i,ib);
end; //此时D中有4*(countD)个元素
k:=-1;
Setlength(H,1000);
for v:=0 to 999 do
H[v]:=''; //初始化H
for m:=0 to countofD-1 do //由D产生侯选项数组H (4->5)
begin
for n:=m+1 to countofD-1 do
begin
if (D[4*m]=D[4*n])and (D[4*m+1]=D[4*n+1])and(D[4*m+2]=D[4*n+2])
then
begin
k:=k+1;
H[5*k]:=D[4*m];
H[5*k+1]:=D[4*m+1];
H[5*k+2]:=D[4*m+2];
H[5*k+3]:=D[4*m+3];
H[5*k+4]:=D[4*n+3];
end;
end;
end;
countofE:=0;
Setlength(E,1000);
for v:=0 to k do //按列扫描 (五列扫描)
begin
first; //返回dataset的第一条记录
while not eof do //按行扫描
begin
fivelie(i,ib,H[5*v],H[5*v+1],H[5*v+2],H[5*v+3],H[5*v+4],i,ib) ;
next
end;
if (i<>0) then
transtr(i,ib,itnb,ibl,zxd,il,j,jil,jib,jibl,jzxd);
item := listview1.items.add;
fillTable(H[5*v]+'&'+H[5*v+1]+'&'+H[5*v+2]+'&'+H[5*v+3]+'&'+H[5*v+4],j,jil,jib,jibl,jzxd);
judge5(countofE,ib,g,H[5*v],H[5*v+1],H[5*v+2],H[5*v+3],H[5*v+4],countofE,E);
setvalue(re,ig,il,zxd,ibl,i,ib);
end; //此时E中有5*(countE)个元素
k:=-1;
Setlength(H,1000);
for v:=0 to 999 do
H[v]:=''; //初始化H
for m:=0 to countofE-1 do //由E产生侯选项数组H (5->6)
begin
for n:=m+1 to countofE-1 do
begin
if (E[5*m]=E[5*n])and (E[5*m+1]=E[5*n+1])and(E[5*m+2]=E[5*n+2])and(E[5*m+3]=E[5*n+3])
then
begin
k:=k+1;
H[6*k]:=E[5*m];
H[6*k+1]:=D[5*m+1];
H[6*k+2]:=D[5*m+2];
H[6*k+3]:=D[5*m+3];
H[6*k+4]:=D[5*m+4];
H[6*k+5]:=D[5*n+4];
end;
end;
end;
countofF:=0;
Setlength(F,1000);
for v:=0 to k do //按列扫描 (6列扫描)
begin
first; //返回dataset的第一条记录
while not eof do //按行扫描
begin
sixlie(i,ib,H[6*v],H[6*v+1],H[6*v+2],H[6*v+3],H[6*v+4],H[6*v+5],i,ib) ;
next
end;
if (i<>0) then
transtr(i,ib,itnb,ibl,zxd,il,j,jil,jib,jibl,jzxd);
item := listview1.items.add;
fillTable(H[6*v]+'&'+H[6*v+1]+'&'+H[6*v+2]+'&'+H[6*v+3]+'&'+H[6*v+4]+'&'+H[6*v+5],j,jil,jib,jibl,jzxd);
judge6(countofF,ib,g,H[6*v],H[6*v+1],H[6*v+2],H[6*v+3],H[6*v+4],H[6*v+5],countofF,F);
setvalue(re,ig,il,zxd,ibl,i,ib);
end; //此时F中有6*(countF)个元素
except
listview1.items.Clear;
messagedlg('运行出错',mtError,[mbok],0);
end ;
end;
finally
Listview1.Items.EndUpdate; //结束更新
end;
edit1.Text:=inttostr(countofA);
edit2.Text:=inttostr(countofB);
edit3.Text:=inttostr(countofC);
edit4.Text:=inttostr(countofD);
edit5.Text:=inttostr(countofE);
edit6.Text:=inttostr(Listview1.Items.Count);
edit7.Text:=inttostr(itnb);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button3Click(Sender: TObject); //复位过程
begin
editgate.Text:='';
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
listview1.items.Clear;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -