(********** Vergleich zweier Strings **********) (* Die Funktion Gleich ergibt true, wenn die *) (* Maske auf den String Str passt. Maske darf *) (* die Joker * und ? enthalten. *) (* Es wird die Definition des Stringtyps *) (* WrkString vorausgesetzt. *) (**********************************************) function Gleich(Maske,Str:WrkString):boolean; var j:integer;CharFound:boolean; begin {of Gleich} j:=1;Gleich:=true; if length(Maske)=0 then begin if length(Str)>0 then Gleich:=false end else if (Maske[1]='*') then begin if length(Maske)>1 then begin CharFound:=false;j:=0; while (j<=length(Str)) and (not CharFound) do begin j:=j+1; if (Maske[2]=Str[j]) or (Maske[2]='?') or (Maske[2]='*') then CharFound:=true; end; delete(Maske,1,1);delete(Str,1,j-1); if length(Maske)>0 then Gleich:=Gleich(Maske,Str); end; end else if (length(Maske)>0) and (length(Str)>0) then begin if (Maske[1]<>Str[1]) and (Maske[1]<>'?') then Gleich:=false else begin delete(Maske,1,1);delete(Str,1,1); Gleich:=Gleich(Maske,Str) end; end else if (length(Maske)>0) or (length(Str)>0) then Gleich:=false end; {of Gleich}