Добрый день, форумчане! Помогите решить такую проблему. Есть устройство, с которого я считываю через com-порт список файлов. Мне необходимо распарсить этот список и оставить только имена файлов, которые есть в списке, вот вид списка:
AT#LSCRIPT
#LSCRIPT: "AaStart.py",625
#LSCRIPT: "Alarm.pyo",2921
#LSCRIPT: "Alias.pyo",111
#LSCRIPT: "Cache.pyo",2491
#LSCRIPT: "Config.ini",680
#LSCRIPT: "Config.pyo",8750
#LSCRIPT: "Float.pyo",4470
#LSCRIPT: "Func.pyo",3125
#LSCRIPT: "GPSInt.pyo",4146
#LSCRIPT: "History.pyo",4064
#LSCRIPT: "IO.pyo",3477
#LSCRIPT: "IPInt.pyo",6723
#LSCRIPT: "main2.pyo",13429
#LSCRIPT: "main3.pyo",10934
#LSCRIPT: "SPIIO.pyo",9432
#LSCRIPT: "xID.ini",11
#LSCRIPT: free bytes: 1925316
OK
сами названия файлов я вытягиваю с помощью:
void CGPSTerminal::slotReadData()
{
QByteArray data = m_port->readAll();
if(m_currentTerminal && CGPSTerminal::MAIN_TERMINAL)
m_ui->m_teTerminal->insertPlainText(QString(data));
if(m_currentTerminal && CGPSTerminal::MODULE_TERMINAL)
{
m_ui->m_lwListScriptModule->clear();
m_ui->m_leCountFiles->clear();
QString strList = QString(data);
QRegExp regexp("\"[A-Za-z0-9.]+");
qDebug() << strList;
int pos = 0, count = 0;
while((pos = regexp.indexIn(strList, pos)) != -1)
{
m_ui->m_lwListScriptModule->addItem(regexp.cap());
pos += regexp.matchedLength();
count++;
}
m_ui->m_leCountFiles->setText(QString::number(count));
}
QScrollBar *bar = m_ui->m_teTerminal->verticalScrollBar();
bar->setValue(bar->maximum());
}
но иногда в список заносятся не все файлы...это происходит, когда с списке файлов появляются перенос строки и возврат каретки...пытался убрать эти символы, но они все равно всплывают...на изображении видно, что устройство вернуло 16 файлов, а в список занесено 9...Если посмотреть вывод приложения, то можно увидеть появление дополнительных переносов строки...Вот как выглядит вывод, когда все файлы заносятся в список:
"AT"
"#LSCRIPT
#LSCRIPT: "AaStart.py",625
#LSCRIPT: "Alarm.pyo",2921
#LSCRIPT: "Alias.pyo",111
#LSCRIPT: "Cache.pyo",2491
#LSCRIPT: "Config.ini",680
#LSCRIPT: "Config.pyo",8750
#LSCRIPT: "Float.pyo",4470
#LSCRIPT: "Func.pyo",3125
#LSCRIPT: "GPSInt.pyo",4146
#LSCRIPT: "History.pyo",4064
#LSCRIPT: "IO.pyo",3477
#LSCRIPT: "IPInt.pyo",6723
#LSCRIPT: "main2.pyo",13429
#LSCRIPT: "main3.pyo",10934
#LSCRIPT: "SPIIO.pyo",9432
#LSCRIPT: "xID.ini",11
#LSCRIPT: free bytes: 1925316
OK
а вот вид вывода, когда занесены только 9 последних файлов:
"AT"
"#LSCRIPT
#LSCRIPT: "AaStart.py",625
#LSCRIPT: "Alarm.pyo",2921
"
"#LSCRIPT: "Alias.pyo",111
"
"#LSCRIPT: "Cache.pyo",2491
"
"#LSCRIPT: "Config.ini",680
"
"#LSCRIPT: "Config.pyo",8750
#LSCRIPT: "Float.pyo",4470
"
"#LSCRIPT: "Func.pyo",3125
#LSCRIPT: "GPSInt.pyo",4146
#LSCRIPT: "History.pyo",4064
#LSCRIPT: "IO.pyo",3477
#LSCRIPT: "IPInt.pyo",6723
#LSCRIPT: "main2.pyo",13429
#LSCRIPT: "main3.pyo",10934
#LSCRIPT: "SPIIO.pyo",9432
#LSCRIPT: "xID.ini",11
#LSCRIPT: free bytes: 1925316
OK
Видно что занесены только 9 последних файлов, между которыми нет дополнительных переносов строк и переводов кареток...Помогите пожалуйста....