| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Ipo 18.05.2006 14:14
Есть два слова, назовем их ГЛАВНОЕ и ПРИСЛАНОЕ@_word_detect[w_send;w_main]
# создание таблицы букв главного слова
$W_M_Split[^table::create{piece}]
^for[i](0;^w_main.length[]-1){
^W_M_Split.append{^w_main.mid($i;1)}
}
# создание таблицы букв введенного слова
$W_S_Split[^table::create{piece}]
^for[i](0;^w_send.length[]-1){
^W_S_Split.append{^w_send.mid($i;1)}
}
# временный хеш для отбора проверенных букв
$W_T[^hash::create[]]
# типа счетчик числа совпадений
$W_C(0)
# перебераем введенное слово по буквам и сверяем его с заданным словом
^W_S_Split.menu{
# если у нас несколько одинаковых букв то надо проверить только одну, а вследующий раз другую
$Ti(0)
$It(0)
^W_M_Split.menu{
^if(($W_M_Split.piece eq $W_S_Split.piece) && ($W_T.$It ne 1) && ($Ti == 0)){
$Ti(1) ^W_C.inc[]
$W_T.$It[1]
}
^It.inc[]
}
}
^if($W_C == ^w_send.length[]){$result(1)}{$result(0)}
}