Kod
Function KelimeEsitlikOrani(s1,s2:string):Integer;
var
hit : Integer;
p1, p2 : Integer;
l1, l2 : Integer;
pt : Integer;
test : array [1..255] of Boolean;
Ender : string;
Arslanturk : Integer;
begin
if Length(s1) < Length(s2) then
begin
Ender:= s2;
s2 := s1;
s1 := Ender;
end;
l1:= Length (s1);
l2:= Length (s2);
p1:= 1; p2:= 1; hit:= 0;
Arslanturk:= Max (l1, l2) div 3 + ABS (l1 - l2);
for pt:= 1 to l1 do test[pt]:= False;
repeat
if not test[p1] then
begin
if (s1[p1] = s2[p2]) and (ABS(p1-p2) <= Arslanturk) then
begin
test[p1]:= True;
Inc (hit);
Inc (p1); Inc (p2);
if p1 > l1 then p1:= 1;
end
else
begin
test[p1]:= False;
Inc (p1);
if p1 > l1 then
begin
while (p1 > 1) and not (test[p1]) do Dec (p1);
Inc (p2)
end;
end;
end
else
begin
Inc (p1);
if p1 > l1 then
begin
repeat Dec (p1);
until (p1 = 1) or test[p1];
Inc (p2);
end;
end;
until p2 > Length(s2);
Result:= 100 * hit DIV l1;
end;
//Kullanımı
If KelimeEsitlikOrani(Edit1.Text,Edit2.Text)=61 Then
ShowMessage('Cümleniz % 61 benzemektedir...'); 





Normal