Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Сравнить две строки и получить результат в процентах

Delphi , Синтаксис , Текст и Строки

Сравнить две строки и получить результат в процентах

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

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;

Программный код на Delphi сравнивает два строки и рассчитывает процентное соответствие между ними. Вот шаг за шагом, как работает это:

  1. Функция DoStringMatch принимает два параметра-строки s1 и s2, и возвращает вещественное значение, представляющее собой процентное соответствие.
  2. Она инициализирует несколько целочисленных переменных: iMax для хранения максимальной длины двух строк, iMin для хранения минимальной длины и iSameCount для счета количества совпадающих символов.
  3. Функция проходит по каждому символу в обеих строк с помощью цикла for. Если текущий символ является одним и тем же в обеих строках, она увеличивает iSameCount. Если нет, она выходит из цикла рано.
  4. После цикла, если есть совпадающие символы, функция рассчитывает процентное соответствие, делит количество совпадающих символов (iSameCount) на максимальную длину двух строк (iMax), умножает на 100.
  5. Процедура Button1Click вызывает функцию DoStringMatch с двумя аргументами-строками: 'SwissDelphiCenter' и 'SwissDelphiCenter.ch'. Затем она отображает сообщение, содержащее процентное соответствие.

Результат этого кода - это сообщение, говорящее о том, что есть 85% совпадения. Это означает, что 85 из 100 символов в обеих строках идентичны.

Примечание: Функция FloatToStr используется для преобразования вещественного значения, возвращаемого функцией DoStringMatch, в строку, а затем она конкатенируется с текстом " % match." для формирования окончательного сообщения.

В статье описывается функция DoStringMatch на языке Delphi, которая сравнивает две строки и возвращает результат в процентах.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Текст и Строки ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:53:41/0.0053939819335938/1