...compare two Strings and measure the percentage they match?
Author: Uwe
uses
Math;
function DoStringMatch(s1, s2: string): Double;
var
i, iMin, iMax, iSameCount: Integer;
begin
iMax := Max(Length(s1), Length(s2));
iMin := Min(Length(s1), Length(s2));
iSameCount := -1;
for i := 0 to iMax do
begin
if i > iMin then
break;
if s1[i] = s2[i] then
Inc(iSameCount)
else
break;
end;
if iSameCount > 0 then
Result := (iSameCount / iMax) * 100
else
Result := 0.00;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
match: Double;
begin
match := DoStringMatch('SwissDelphiCenter', 'SwissDelphiCenter.ch');
ShowMessage(FloatToStr(match) + ' % match.');
// Resultat: 85%
// Result : 85%
end;
printed from
www.swissdelphicenter.ch
developers knowledge base