Forum Webscript.Ru

Программирование => Perl => Тема начата: AndyAN от 27 Сентября 2004, 12:56:05

Название: Помогите решит проблему Надро срочно
Отправлено: AndyAN от 27 Сентября 2004, 12:56:05
Это сложно объяснить.... у меня поиск ищет и находит слово INDESIT но не может найти indesit а в базе данных есть запись INDESIT

вот не знаю что делать

ссылка на код http://www.ezdok.ru/search.txt
Название: Помогите решит проблему Надро срочно
Отправлено: Green Kakadu от 27 Сентября 2004, 14:59:12
поставь ключ i в регекспах
а если вся база в верхнем регистре, то проще (и быстрее) просто все входные параметры переводить в вверхн.рег.

 @text_arr = split(/ /, uc $text);
Название: Помогите решит проблему Надро срочно
Отправлено: AndyAN от 27 Сентября 2004, 16:57:35
Спасио! ключ i как раз то что надо. но проблема в том что я не могу разобраться в синтаксесе. можешь подсказать куда его правильно поставить в моем случае? Дело в том что база не только в верхнем регистре, записи там разные, поэто мне надо что бы он просто не реагировал на регистр
Название: Помогите решит проблему Надро срочно
Отправлено: Green Kakadu от 27 Сентября 2004, 17:16:25
надо глянуть на rutextup - сея подпрограмма чего делает (она тута uss_lib.pl)?
Название: Помогите решит проблему Надро срочно
Отправлено: AndyAN от 27 Сентября 2004, 17:28:43
вот чего она делает
http://www.ezdok.ru/uss_lib.txt
наворотил мой предшественник, а я понять ничего не могу
Название: Помогите решит проблему Надро срочно
Отправлено: Green Kakadu от 27 Сентября 2004, 17:52:47
if (join("",$name,$model) =~/$word/i){
вместо
 if ((rutextup("\\I$name$model\\E") =~ rutextup(\\I$word\\E)){
+ вначале пропиши
use locale;
А вообще там :) стоит все конкретно переделать, например библиотечку  uss_lib.pl :) можно и не использовать учитывая,что из нее там пару функций по разу использовались..
Название: Помогите решит проблему Надро срочно
Отправлено: AndyAN от 27 Сентября 2004, 18:42:59
да, с англиским алфавитом то теперь все работает, но началась таже фигня с русскими словами...
Название: Помогите решит проблему Надро срочно
Отправлено: glebushka от 27 Сентября 2004, 19:34:18
AndyAN
Цитировать
Green Kakadu:
use locale;

поставь в саааамое начало скрипта:)
Название: Помогите решит проблему Надро срочно
Отправлено: AndyAN от 27 Сентября 2004, 20:14:24
так поставил.... все равно с русским  язаком теперь проблема, находит русские слова только при точном совпадении запроса, а если регистр отличается - беда. а английские слова теперь нормально находит, независимо от регистра.
вот код http://www.ezdok.ru/search.txt
Название: Помогите решит проблему Надро срочно
Отправлено: NeoNox от 27 Сентября 2004, 21:21:33
пробуй

use POSIX qw(locale_h);
use locale;
setlocale(LC_CTYPE,\'ru_RU.CP1251\');
Название: Помогите решит проблему Надро срочно
Отправлено: AndyAN от 27 Сентября 2004, 21:40:57
NeoNox
glebushka
Green Kakadu

Вау! СПАСИБО  всем огромное!!!!!!! помогло! Большое спасибо за помошь!