首页 > 代码库 > QRegExp
QRegExp
这段代码会越界,百思不得七姐(过了N久时间 之后^^)原来是把i写成了1 --!
//#if 0 QRegExp re1("AT+CGATT?"); QRegExp re2("AT+CGATT=([0-9])"); if (re1.exactMatch(list[1])) { qDebug()<<"list[i]"<<list[i]; } else if (re2.exactMatch(list[i])) { // set int state; bool ok; state = re2.cap(1).toInt(&ok); if (ok && state >= 0 && state <= 1) { ue->cgatt.state = state; response.append("OK"); } else response.append("ERROR"); }//#endif
这个for + switch 的用法回味好久之后还是美
QRegExp ref1("AT+COPS?"); QRegExp ref2("AT+COPS=([0-9])(.*)"); //[<mode>[,<format> [,<oper>[,<AcT>]]]] if (ref1.exactMatch(list[i])) response.append("+COPS:") .append(QString::number(ue->cops.mode)).append(",") .append(QString::number(ue->cops.format)).append(",") .append(ue->cops.oper_numeric).append(",") .append(QString::number(ue->cops.act)).append("\r\nOK"); else if (ref2.exactMatch(list[i])) { ue->cops.mode = ref2.cap(1).toInt(); if (!ref2.cap(2).isEmpty()) { QStringList pa; pa = ref2.cap(2).split(","); for (i = 0; i < pa.size(); i++) { switch (i) { case 0: ue->cops.format = pa.at(i).toInt(); break; case 1: strcpy(ue->cops.oper_long, pa.at(i).toAscii().constData()); break; case 2: ue->cops.act = pa.at(i).toInt(); break; default: break; } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。