2015-01-06 20:51:19 +08:00
|
|
|
#include "task.h"
|
|
|
|
|
#include <iostream>
|
|
|
|
|
Task::Task()
|
|
|
|
|
{
|
|
|
|
|
this->taskFile="./../task.txt";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Task::doAgainstTaskFile(ElementHashtable &eleHT)
|
|
|
|
|
{
|
|
|
|
|
QFile file(this->taskFile);
|
|
|
|
|
QString line;
|
|
|
|
|
QStringList sep;
|
2015-01-08 10:13:29 +08:00
|
|
|
if(file.open(QFile::ReadOnly|QFile::Text))
|
2015-01-06 20:51:19 +08:00
|
|
|
{
|
|
|
|
|
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()<3)
|
|
|
|
|
{
|
|
|
|
|
std::cout<<"error: "<<line.toStdString()<<std::endl;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
2015-01-08 10:13:29 +08:00
|
|
|
QString lineName=sep.at(0);
|
2015-01-06 20:51:19 +08:00
|
|
|
QString lineID=sep.at(1);
|
2015-01-08 10:13:29 +08:00
|
|
|
// std::cout<<lineName.toLocal8Bit().data()<<std::endl;
|
2015-01-06 20:51:19 +08:00
|
|
|
eleHT.SetACLineID(lineID);
|
|
|
|
|
eleHT.SetFDSet(setSep.toVector());
|
|
|
|
|
eleHT.GoPath();
|
2015-01-08 10:13:29 +08:00
|
|
|
eleHT.ShowContainerInfo(lineName);
|
2015-01-06 20:51:19 +08:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
file.close();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
std::cerr<<this->taskFile.toStdString()<<"not open"<<std::endl;
|
|
|
|
|
}
|
|
|
|
|
}
|