p; if not((ax[axstart]=''?'') or (ax[axstart]=''*'') ) then
begin//ccc
endpartax:=copy(ax,axstart,axlength-axstart+1)+''?*'';
subax:=copy(endpartax,1,min(pos(''?'',endpartax),pos(''*'',endpartax))-1);
axstart:=axstart+min(pos(''?'',endpartax),pos(''*'',endpartax))-1;
endpartabc:=copy(abc,abcstart,abclength-abcstart+1);
if ((pos(subax,endpartabc)<>0) and (temp=1 )) or ((pos(subax,endpartabc)=1) and (temp=0)) then
begin//ddd
if temp=1 then temp:=0;
abcstart:=abcstart+(pos(subax,endpartabc)+length(subax)-1) ;
end//ddd
else//ddd
begin//ddd
if (temp=0) and (axwww>1) then
begin
axstart:=axwww;
abcwww:=abcwww+1;
abcstart:=abcwww;
temp:=1;
continue;
end;
isabclikeax:=false;
break;
end;//ddd
end;//ccc
end;//bbb
if (result) and (abcstart<=abclength) and (ax[axlength]<>''*'') then isabclikeax:=false;//源串长过子串时
end;//aaa
FUNCTION IsLike(abc,ax:string):boolean; file://大小写敏感的函数
begin
islike:=isABClikeAX(abc,ax);
end;
FUNCTION WideCard(abc,ax:string):boolean; file://大小写不敏感的函数
begin
abc:=uppercase(abc);
ax:=uppercase(ax);
widecard:=isABClikeAX(abc,ax);
end;
注意USES MATH,因为用到MIN(),也可以用IF语句来代替MIN(),但不够明白。
多谢一些网友给我提出的一些正确的见解,使得修改有了正确的方向。