Mega Code Archive

 
Categories / Delphi / Strings
 

How to compare two strings and measure the percentage they match

Title: How to compare two Strings and measure the percentage they match 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;