Добрый день!!!
Работаю со строками в файле.
Файл конфигурационный формата Comtrade.
1. читаю с файла построчно в буффер.
2. Начинаю разбирать буффер по формату.
3. Записываем по char до запятой
4. Потом записываем полученную строку в структуру
5. Убираем считанную строку из буффера
// StationName
проходит все замечательно
НО
//Device Id
выдает ошибку завершился с кодом -1073741819
Не могу понять из-за чего
Помогите!!!
Вот код:
QFile * pFile;
QString Buffer; Buffer.clear();
QString BufInit; BufInit.clear();
long int i;
unsigned int n;
unsigned int Analog = 0, Digital = 0;
DynamicCfg = new COMTRADE;
pFile = new QFile;
QDir::setCurrent("C:/tmp");
pFile->setFileName(FileName);
if(pFile->exists())
{
if(!pFile->open(QIODevice::ReadOnly | QIODevice::Text)) return false;
qDebug()<<"file open";
while(!pFile->atEnd())
{
QString line = pFile->readLine();
Buffer.append(line);
qDebug()<<"line = "<<line;
}
}
qDebug()<<"Buffer = "<<Buffer;
pFile->close();
// StationName
for (i = 0; i <= Buffer.length(); i++)
{
if (Buffer.at(i) == ',')
{
//Buffer.at(i) = 0;
break;
}
DynamicCfg->StationName.insert(i, Buffer.at(i));
}
Buffer.remove(0,i+1);
qDebug()<<"DynamicCfg->StationName"<<DynamicCfg->StationName;
qDebug()<<"Buffer remove"<<Buffer;
// DeviceId
for (i = 0; i <= Buffer.length(); i++)
{
if (Buffer.at(i) == 0x0A)
{
break;
}
DynamicCfg->DeviceId.insert(i,Buffer.at(i));
}
Buffer.remove(0,i+2);
}