![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Искать похожие слова [D7, XP]
Евгений Т. © (2008-02-21 14:08:00)Всем привет! Вот пишу программу которая бегает по записям и сравнивает Строку1 и Строку2. Теперь появилась необходимость искать похожие слова. Пример: Строка1 = 'машина', Строка2 = 'красная машина'
В данном случаи результат True. Мастера, если у кого уже есть такая функция поиска будьте любезны, выложить. Я бы мог помучиться и попробувать сделать сам, но уже скоро сдавать да и велосипед изобритать ... зр. Спасибо.
Johnmen (2008-02-21 14:45:00) [1]
> А вы я так понимаю его секретарша?
Я его пресс-секретарь.
Johnmen (2008-02-21 14:43:00) [2]
> Евгений Т. (21.02.08 14:40) [10]
> > Плохиш ©
> У тебя все продается?
Нет. У него всё покупается.
Евгений Т. (2008-02-21 14:43:00) [3]2 Johnmen ©
А вы я так понимаю его секретарша?
Евгений Т. (2008-02-21 14:40:00) [4]Я же не прошу написать вас с нуля такую функцию. Я попросилил если есть у кого: цитирую свои слова: "Мастера, если у кого уже есть такая функция поиска будьте любезны"
Если нету, зачем флудить ?
> Плохиш ©
У тебя все продается?
Riply (2008-02-21 14:35:00) [5]> [0] Евгений Т. (21.02.08 14:08)
> Я бы мог помучиться и попробувать сделать сам,
Может уступить место тому, для кого учеба не является мучением ?
Игорь Шевченко (2008-02-21 14:28:00) [6]
> Я бы мог помучиться и попробувать сделать сам, но уже скоро
> сдавать
а нам какое дело ?
Amoeba (2008-02-21 14:27:00) [7]
> Евгений Т. (21.02.08 14:22) [6]
>
> Сумма чего ?
>
Догадайся с трех раз.
Евгений Т. (2008-02-21 14:22:00) [8]Сумма чего ?
Servy (2008-02-21 14:20:00) [9]> Строка1 = 'машина', Строка2 = 'красная машина'
> В данном случаи результат True.
Первый вариант функции, удовлетворяющей приведенному условию:
function CompareStr1(const S1, S2: string): Boolean;
begin
Result := (S1 = 'машина') and (S2 = 'красная машина');
end;
Включая телепатер, можно предположить, что критерий похожести такой: если одна из строк полностью входит в другую, то строки считаются похожими.
function CompareStr2(const S1, S2: string): Boolean;
begin
Result := (Pos(S1, S2) > 0) or (Pos(S2, S1) > 0);
end;
Еще, как критерий похожести можно использовать расстояние Левенштейна, гугль поможет. Можно еще вагон решений придумать, сказать, что нужно Евгению не представляется возможным за недостатком информации.
Плохиш (2008-02-21 14:20:00) [10]Сумма не озвучена
Евгений Т. (2008-02-21 14:19:00) [11]> Плохиш ©
Да с "Pos" я знаком, но я обратился потому что время совсем поджимает. Если у кого уже есть то плз.
Плохиш (2008-02-21 14:16:00) [12]
> Евгений Т. (21.02.08 14:08)
У меня есть, Pos - называется.
Palladin (2008-02-21 14:11:00) [13]конкретное тз неозвучено... да и Строка2 это два слова, а не одно...