Есть строка такого типа
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; плз не спрашивайте, просто добавлял параметры по одному а переписать всё никак.. :))
Заранее спасибо!!!