Russian Qt Forum
Ноябрь 23, 2024, 06:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Просьба помочь с QRegExp  (Прочитано 4212 раз)
Tin-moon
Гость
« : Июнь 09, 2010, 18:51 »

Проблема в следующем ищу из LineEdit слова в тексте, если писать одно слово на русском то ищет если два через пробел то нет, на английском вроде ищет и 2 и больше для того же выражения, почему так?
Вот небольшой кусочек кода
Код:
Search::Search(QWidget *parent,Indexation indexation1,QString &find){
    indexation = indexation1;
    if (!find.isEmpty()) {
        // QRegExp rx("[\\w | \\s] + ");
         QRegExp rx("(\\w+)");
         QString wholeString = find;
         wholeString = wholeString.toLower();
         QStringList words;
         int pos = 0;
         while ((pos = rx.indexIn(wholeString, pos)) != -1) {
             words << rx.cap(1);
             pos += rx.matchedLength();
         }

         int size = indexation.keyWords.size();
         for(int i = 0; i < size; i++){
             QString word = indexation.keyWords.at(i).word;

           for( int j = 0; j < words.length(); j++)
            if(word == words.at(j))
                     hitedIndexes.append(indexation.keyWords.at(i).indexes);
         }
         accept();
         return;
     }
}

Кто может подскажите, кодек прописал
Код:
    QTextCodec *codec = QTextCodec::codecForName("CP1251");
    QTextCodec::setCodecForTr(codec);
Записан
crossly
Гость
« Ответ #1 : Июнь 09, 2010, 19:52 »

вы кодек для tr() прописали
Записан
Tin-moon
Гость
« Ответ #2 : Июнь 09, 2010, 19:55 »

вы кодек для tr() прописали
для чего? если просто для сообщений то да(с этим все норм)
если я не про то куда его прописать?
Записан
crossly
Гость
« Ответ #3 : Июнь 10, 2010, 11:44 »

прочитай внимательно для чего нужна функция tr().... и доку по классу QTextCodec
Записан
Tin-moon
Гость
« Ответ #4 : Июнь 10, 2010, 17:35 »

Ну как всегда на почитай) мне просто нужно регулярное выражение нормальное, чтобы учитывало пробелы, и можно было задовать для поиска n-количество слов
Вот прописал для руского-англ:
QTextCodec::setCodecForCStrings(codec);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 21.