How to compare two strings and measure the percentage they match (Views: 29)
Problem/Question/Abstract: Does anyone know how or does anyone know of a good procedure to match two strings? What I want is a % match between two strings. Something like Hart and Harts are 80% equal. Answer: uses math; function IsStrMatch(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; |