cimforreduceloss/testHasttable/task.cpp

84 lines
2.6 KiB
C++
Raw Normal View History

#include "task.h"
#include <iostream>
Task::Task()
{
this->taskFile="D:/MyPro/cimforreduceloss/testHasttable/task.txt";
}
void Task::doAgainstTaskFile(ElementHashtable &eleHT)
{
LoadMapping lm;
lm.load("D:/Project/佛山项目/数据/搭网架参数文件/","D:/Project/佛山项目/数据/匹配的数据/","D:/Project/佛山项目/数据/exception.txt");//单例,执行一次行了。
lm.broadcastUpdateByTime(QTime(0,0,0));
QFile file(this->taskFile);
QString line;
QStringList sep;
if(file.open(QFile::ReadOnly|QFile::Text))
{
QTextStream reader(&file);
while(!reader.atEnd())
{
line=reader.readLine();
line=line.trimmed();
if(line.startsWith("#"))
{
continue;
}
if(line.length()==0)//空行
{
continue;
}
//先吧括号里面的取出来
QRegularExpression regExp("\\((.*)\\)");
QRegularExpressionMatch match=regExp.match(line);
QString _set;
if(match.hasMatch())
{
_set=match.captured(0);
// std::cout<<_set.toStdString()<<std::endl;
}
else
{
std::cout<<"error: "<<line.toStdString()<<std::endl;
continue;
}
//处理一下set
_set.replace("(","");
_set.replace(")","");
QStringList _setSplit=_set.split(',');
QStringList setSep;
foreach (QString v, _setSplit) {
if(v.trimmed().length()==0)
{
continue;
}
// std::cout<<v.toStdString()<<std::endl;
setSep.push_back(v);
}
// //开始解析
sep=line.split(',');
if(sep.length()<4)
{
std::cout<<"error: "<<line.toStdString()<<std::endl;
continue;
}
QString lineName=sep.at(0);
QString lineID=sep.at(1);
QString loadDir=sep.at(2);
std::cout<<lineName.toLocal8Bit().data()<<std::endl;
eleHT.SetLoadFilePath(loadDir);
eleHT.SetACLineID(lineID);
eleHT.SetFDSet(setSep.toVector());
eleHT.GoPath();
eleHT.ExportTo(QString("D:/MyPro/cimforreduceloss/testHasttable/output/pan/")+sep.at(0)+".txt");
eleHT.ShowContainerInfo(lineName);
// break;
}
file.close();
}
else
{
std::cerr<<this->taskFile.toStdString()<<"not open"<<std::endl;
}
}