Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ [РЕШЕНО] QRegExp::RegExp2 и кодировка

Автор: RazrFalcon 14.3.2011, 14:17

QString temptext;
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
temptext = "{\blur6\fad(300,600)\fs70\pos(386,268)}монстры";
temptext.remove(QRegExp("{[^}]*}",Qt::CaseInsensitive,QRegExp::RegExp2));
qDebug()<<temptext;
qDebug()<<QString::fromLocal8Bit(temptext.toAscii());


Цитата
"{lur6 ad(300,600) s70pos(386,268)}монстры"
"{lur6 ad(300,600) s70pos(386,268)}монстры"


Как победить?

Должно вывести "монстры"

Хмм... Вставило вывод криво, так будет понятней:
http://itmages.ru/

Автор: Алексей 15.3.2011, 12:54

Сделай слэши в строке двойными:

"{\\blur6\\fad(300,600)\\fs70\\pos(386,268)}монстры"


ПС
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

это в том случае если файл сохранён в UTF-8 (в меню можно посмотреть правка/Выбрать кодировку...)

Автор: RazrFalcon 15.3.2011, 17:03

temptext = "{\\blur6\\fad(300,600)\\fs70\\pos(386,268)}монстры";
//"{\blur6\fad(300,600)\fs70\pos(386,268)}монстры"

Лучше, но RegExp не сработал.

>>это в том случае если файл сохранён в UTF-8 (в меню можно посмотреть правка/Выбрать кодировку...)
пробовал все способы

Автор: RazrFalcon 15.3.2011, 20:46

РЕШЕНО!

QString temptext;
temptext = "{\blur6\fad(300,600)\fs70\pos(386,268)}монстры";
temptext.remove(QRegExp("\\{[^\\}]*\\}"));
qDebug()<<temptext;
Цитата
"монстры"


Работает даже без QRegExp::RegExp2

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)