1.加入Task文件,准备批量做。
2.把Task文件接入流程。 Signed-off-by: facat@lab.com <facat@lab.com>
This commit is contained in:
74
testHasttable/task.cpp
Normal file
74
testHasttable/task.cpp
Normal file
@@ -0,0 +1,74 @@
|
||||
#include "task.h"
|
||||
#include <iostream>
|
||||
Task::Task()
|
||||
{
|
||||
this->taskFile="./../task.txt";
|
||||
}
|
||||
|
||||
void Task::doAgainstTaskFile(ElementHashtable &eleHT)
|
||||
{
|
||||
QFile file(this->taskFile);
|
||||
QString line;
|
||||
QStringList sep;
|
||||
if(file.open(QFile::ReadOnly))
|
||||
{
|
||||
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;
|
||||
}
|
||||
QString lineID=sep.at(1);
|
||||
eleHT.SetACLineID(lineID);
|
||||
eleHT.SetFDSet(setSep.toVector());
|
||||
eleHT.GoPath();
|
||||
break;
|
||||
}
|
||||
file.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr<<this->taskFile.toStdString()<<"not open"<<std::endl;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user