•  

ГлавнаяРабота с текстом и строками → Сравнить две строки и получить результат в процентах

Создано: 01.08.2010 21:03:23 · Исправлено: 01.08.2010 21:03:23 · Прочтений: 1377

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;