Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Искать похожие слова [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 это два слова, а не одно...


Наверх

Титульная страница Поиск, карта сайта Написать письмо