IComparerClass.FreeTextComparer

Синтаксис

FreeTextComparer: IComparer;

Описание

Свойство FreeTextComparer возвращает объект для свободного сравнения текста.

Комментарии

При сравнении ищется вхождение строки X в строку Y. Если строка состоит из нескольких слов, то ищутся вхождения по каждому слову в отдельности. При поиске вхождений отбрасываются окончания существительных. Например, для слов «Доход», «Доходы», «Доходов», «О доходах» будет искаться вхождение «Доход».

Для данного объекта метод IComparer.Compare будет возвращать:

Для использования дополнительных параметров сравнения приведите значение свойства FreeTextComparer к типу IFreeTextComparer.

Пример

Sub UserProc;

 

Function TestCompare(x : String; y : String): Integer;

Var

pComparer : IComparer;

iResult : Integer;

Begin

pComparer := Comparer.FreeTextComparer;

iResult := pComparer.Compare(x, y);

Select Case iResult

Case  0: Debug.WriteLine("'" + x + "'  '" + y + "' -> объекты совпадают");

Case -1: Debug.WriteLine("'" + x + "'  '" + y + "' -> частичное совпадение или вхождений не найдено");

End Select;

Return iResult;

End Function TestCompare;

Begin

TestCompare("find a cat", "finding of cats is some kind of difficult process"); // 0

TestCompare("find a cat", "now we see how cats are found"); //-1

TestCompare("find cats", "there is a cat. find it"); // 0

TestCompare("houses", "housing problem"); //0

TestCompare("торг домами", "торговый дом"); //0

TestCompare("торговля домами", "торговый дом"); //-1

TestCompare("Доход", "население страны"); //-1

End Sub UserProc;

После выполнения примера в окно консоли будут выведены результаты сравнения:

Module execution started

'find a cat'  'finding of cats is some kind of difficult process' -> объекты совпадают

'find a cat'  'now we see how cats are found' -> частичное совпадение или вхождений не найдено

'find cats'  'there is a cat. find it' -> объекты совпадают

'houses'  'housing problem' -> объекты совпадают

'торг домами'  'торговый дом' -> объекты совпадают

'торговля домами'  'торговый дом' -> частичное совпадение или вхождений не найдено

'Доход'  'население страны' -> частичное совпадение или вхождений не найдено

Module execution finished

См. также:

IComparerClass