LINUX.ORG.RU

Или я чё то не понимаю или одно из двух.


0

0

Есть строка такого типа

mainw=100,100,0,0

Она передаётся функции:

QString kmmsConfig::getBlockUntil(QString s, QChar div, int rep_div, QChar end)
{
QString st;
QChar ch = 0;
unsigned int n = 0;
int rep = 0;
bool f=false;
while (n <= s.length())
{
ch = s [ n ];
if (ch == div) if (rep == rep_div) if (ch==end) break;
if (ch == '\n') break;
if (ch == div ) if ( rep == rep_div) f = true;
else if (ch == div ) if ( rep != rep_div) rep++;
if (f)
{
st+=ch;
n++;
}
}
if (rep_div != 0) st = st.remove(0,1);

return st;
}


Вызывается так getBlockUntil(stroka,'=',1,','), т.е. выбирается подстрока между '=' и ','.

но почему то на этом всё зависает, что странно, т.к. на мой взгляд предусмотренны все варианты исхода, вот только оно зацикливается, может кто подскажет что не так??

P/S про череду ифов в if (ch == div) if (rep == rep_div) if (ch==end) break; плз не спрашивайте, просто добавлял параметры по одному а переписать всё никак.. :))

Заранее спасибо!!!

★★★★★

Ну зачем, используя Qt, так извращаться? QString умеет очень много, или посмотри QRegExp.

hbee ★★★★
()
Ответ на: комментарий от cyclon

А за QString спасибо, чё то совсем забыл покопать маны, ща посмотрел и впринципе есть то что надо, надо почаще в qt/doc/html заглядывать :))

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.