crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Странности с флажком QTextDocument::FindWholeWords
AD
  опции профиля:
сообщение 28.4.2008, 13:05
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Из файла последовательно считываю строки, ищу строки, где есть слово "value" целиком, т.е. без каких-либо прибавок, используя вот этот флажок QTextDocument::FindWholeWords. А мне отыскиваются как раз слова в которых "value" как прибавка. В чем проблема?

Вот код:
if(record.toLower().find("value", QTextDocument::FindWholeWords) != -1)
{
         /// body
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.4.2008, 13:18
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


record какой тип имеет?
я для find нашел такие варианты:
QTextCursor find ( const QString & subString, const QTextCursor & cursor, FindFlags options = 0 ) const 
QTextCursor find ( const QRegExp & expr, const QTextCursor & cursor, FindFlags options = 0 ) const
QTextCursor find ( const QString & subString, int position = 0, FindFlags options = 0 ) const
QTextCursor find ( const QRegExp & expr, int position = 0, FindFlags options = 0 ) const

а такого
QTextCursor find ( const QString & subString, FindFlags options = 0 ) const

не нашел
т.е. я думаю, что надо написать так:
find("value", 0, QTextDocument::FindWholeWords)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 28.4.2008, 13:45
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Litkevich Yuriy @ 28.4.2008, 14:18) *
record какой тип имеет?
я для find нашел такие варианты:
QTextCursor find ( const QString & subString, const QTextCursor & cursor, FindFlags options = 0 ) const 
QTextCursor find ( const QRegExp & expr, const QTextCursor & cursor, FindFlags options = 0 ) const
QTextCursor find ( const QString & subString, int position = 0, FindFlags options = 0 ) const
QTextCursor find ( const QRegExp & expr, int position = 0, FindFlags options = 0 ) const

а такого
QTextCursor find ( const QString & subString, FindFlags options = 0 ) const

не нашел
т.е. я думаю, что надо написать так:
find("value", 0, QTextDocument::FindWholeWords)

Спасибо, заходить стало, но не помогло! Ладно, не столь важно.
А как с помощью регулярных выражений написать так, чтобы в строке, например, удалялось все что после знака "="? Не силен в регэкспе, можно по проще объяснить, а не читать кучу текста? Заранее спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.4.2008, 14:03
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


я тоже пас :unknown:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 28.4.2008, 15:09
Сообщение #5


Мастер
******

Группа: Модератор
Сообщений: 3293
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(' date='28.4.2008, 14:45) *
А как с помощью регулярных выражений написать так, чтобы в строке, например, удалялось все что после знака "="?
Приведи пример, попробую составить, но не обещаю, так как сам недавно на него подсел... :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 28.4.2008, 15:27
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(ViGOur @ 28.4.2008, 16:09) *
Цитата(' date='28.4.2008, 14:45) *
А как с помощью регулярных выражений написать так, чтобы в строке, например, удалялось все что после знака "="?
Приведи пример, попробую составить, но не обещаю, так как сам недавно на него подсел... :)

value = true либо color = #ff6509

Мне надо, чтобы осталось "value = ", "color = "
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.4.2008, 15:33
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


так и пиши:
(value =)
поймает толко то что в скобках, больше ничего.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 28.4.2008, 15:36
Сообщение #8


Мастер
******

Группа: Модератор
Сообщений: 3293
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


угу
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 29.4.2008, 7:17
Сообщение #9


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


QString::section не канает?
QString valName = line.section('=', 0);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.9.2020, 14:45