{Pranay Orugunta
1/25/11
Enloe HS
Lyerly
Contest 2
Jr 5}
uses crt;
type
a=array[1..5] of string;
d=array[1..10] of string;
var
b,c:a;
e:d;
f:string;
g,h,i,j,count,counter,count2,count3,count4:integer;
begin
clrscr;
writeln('Please input the 10 strings with
commas');
readln(f);
count:=0;
repeat
count:=count+1;
g:=pos(',',f);
e[count]:=copy(f,1,g-1);
Delete(f,1,g);
until (count>10) or (g=0);
e[count]:=f;
for
count:=1 to 5 do
begin
writeln('Please
enter substring ',count);
readln(b[count]);
end;
writeln;
for counter:=1 to 5 do
begin
h:=0;
i:=0;
count4:=0;
for count:=1 to 10 do
begin
j:=0;
g:=pos(b[counter],e[count]);
h:=h+g;
if g<>0 then
begin
if count4<>0 then
begin
write(',');
end;
write(e[count]);
count4:=count4+1;
end;
if
(b[counter][length(b[counter])]='*') and (b[counter][1]<>'?') then
begin
Delete(b[counter],length(b[counter]),1);
g:=pos(b[counter],e[count]);
h:=h+g;
if g<>0 then
begin
for count2:=1 to
length(b[counter]) do
begin
if
(b[counter][count2])=(e[count][count2]) then
begin
j:=j+1;
end;
end;
if j=length(b[counter])
then
begin
if count4<>0
then
begin
write(',');
end;
write(e[count]);
count4:=count4+1;
end;
end;
Insert('*',b[counter],length(b[counter])+1);
end;
if
(b[counter][length(b[counter])]='?') and (b[counter][1]<>'*') then
begin
if
length(b[counter])=length(e[count]) then
begin
Delete(b[counter],length(b[counter]),1);
g:=pos(b[counter],e[count]);
h:=h+g;
if g<>0 then
begin
for count2:=1 to
length(b[counter]) do
begin
if
(b[counter][count2])=(e[count][count2]) then
begin
j:=j+1;
end;
end;
if j=length(b[counter])
then
begin
if count4<>0 then
begin
write(',');
end;
write(e[count]);
count4:=count4+1;
end;
end;
Insert('?',b[counter],length(b[counter])+1);
end;
end;
if (b[counter][1]='*') and
(b[counter][length(b[counter])]<>'?') then
begin
Delete(b[counter],1,1);
g:=pos(b[counter],e[count]);
h:=h+g;
if g<>0 then
begin
for count2:=1 to
length(b[counter]) do
begin
if
b[counter][length(b[counter])-count2+1]=(e[count][length(e[count])-count2+1])
then
begin
j:=j+1;
end;
end;
if j=length(b[counter])
then
begin
if count4<>0
then
begin
write(',');
end;
write(e[count]);
count4:=count4+1;
end;
end;
Insert('*',b[counter],0);
end;
if (b[counter][1]='?') and
(b[counter][length(b[counter])]<>'*') then
begin
if
length(b[counter])=length(e[count]) then
begin
Delete(b[counter],1,1);
g:=pos(b[counter],e[count]);
h:=h+g;
if g<> 0 then
begin
for count2:=1 to
length(b[counter]) do
begin
if
b[counter][length(b[counter])-count2+1]=(e[count][length(e[count])-count2+1])
then
begin
j:=j+1;
end;
end;
if j=length(b[counter])
then
begin
if count4<>0
then
begin
write(',');
end;
write(e[count]);
count4:=count4+1;
end;
end;
Insert('?',b[counter],1);
end;
end;
if (b[counter][1]<>'*') or
(b[counter][length(b[counter])]<>'*') then
begin
if
(pos('?',b[counter])>1) and (pos('?',b[counter])<>length(b[counter]))
then
begin
if length(b[counter])=length(e[count]) then
begin
count2:=pos('?',b[counter]);
b[counter][count2]:=e[count][count2];
g:=pos(b[counter],e[count]);
h:=h+g;
if g<>0 then
begin
if
count4<>0 then
begin
write(',');
end;
write(e[count]);
count4:=count4+1;
end;
b[counter][count2]:='?';
end;
end;
end;
if (b[counter][1]='*') and
(b[counter][length(b[counter])]='?') then
begin
count3:=pos('?',b[counter]);
b[counter][1]:=e[count][1];
b[counter][length(b[counter])]:=e[count][length(e[count])];
g:=pos(b[counter],e[count]);
h:=h+g;
b[counter]:=e[4];
if g<>0 then
begin
for count2:=1 to
length(b[counter]) do
begin
if
b[counter][length(b[counter])-count2+1]=(e[count][length(e[count])-count2+1])
then
begin
j:=j+1;
end;
end;
j:=length(b[counter]);
if j=length(b[counter])
then
begin
if count4<>0
then
begin
write(',');
end;
write(e[count]);
count4:=count4+1;
end;
end;
Insert('*',b[counter],0);
b[counter][length(b[counter])+1]:='?';
end;
if (b[counter][1]='?') and
(b[counter][length(b[counter])]='*') then
begin
count3:=pos('?',b[counter]);
Delete(b[counter],length(b[counter]),1);
b[counter][1]:=e[count][1];
g:=pos(b[counter],e[count]);
h:=h+g;
if g<>0 then
begin
for count2:=1 to
length(b[counter]) do
begin
if
(b[counter][count2])=(e[count][count2]) then
begin
j:=j+1;
end;
end;
if j=length(b[counter]) then
begin
if count4<>0
then
begin
write(',');
end;
write(e[count]);
count4:=count4+1;
end;
end;
Insert('*',b[counter],length(b[counter])+1);
b[counter][1]:='?';
end;
i:=h
end;
if h=0 then
begin
write('No Match');
end;
writeln;
end;
readln;
end.