@@ -1,6 +1,6 @@
|
||||
#include "loadmapping.h"
|
||||
|
||||
|
||||
#include <iostream>
|
||||
QHash<QString,QVector<double> > *LoadMapping::ht=NULL;
|
||||
LoadMapping::LoadMapping()
|
||||
{
|
||||
@@ -16,16 +16,62 @@ LoadMapping::~LoadMapping()
|
||||
|
||||
}
|
||||
|
||||
bool LoadMapping::load(const QString &dir)
|
||||
bool LoadMapping::load(const QString &loadDir,const QString &matchdDir)
|
||||
{
|
||||
if(LoadMapping::ht->keys().length()>0)
|
||||
{
|
||||
return true;//只执行一次
|
||||
}
|
||||
if(!QFileInfo::exists(dir))
|
||||
if(!QFileInfo::exists(loadDir)|!QFileInfo::exists(matchdDir))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(!this->readMatch(matchdDir))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(!this->readLoads(loadDir))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
bool LoadMapping::readLoads(const QString &dir)
|
||||
{
|
||||
RecurseDir recurseDir;
|
||||
recurseDir.setDir((dir));
|
||||
QStringList filePathList=recurseDir.getFiles();
|
||||
foreach(QString filePath,filePathList)
|
||||
{
|
||||
QFileInfo fileInfo(filePath);
|
||||
if(!fileInfo.exists())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
QString suffix;
|
||||
suffix=fileInfo.suffix();
|
||||
if(suffix.toLower()!="csv")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
QString fileName=fileInfo.baseName();
|
||||
if(!this->loadsToLoadInfo.contains(fileName))
|
||||
{
|
||||
std::cout<<filePath.toLocal8Bit().data()<<" no match."<<std::endl;
|
||||
continue;
|
||||
}
|
||||
QSharedPointer<LoadInfo> loadInfo=this->loadsToLoadInfo[fileName];
|
||||
loadInfo->setLoadPath(filePath);
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool LoadMapping::readMatch(const QString& dir)
|
||||
{
|
||||
RecurseDir recurseDir;
|
||||
recurseDir.setDir((dir));
|
||||
QStringList filePathList=recurseDir.getFiles();
|
||||
@@ -36,14 +82,12 @@ bool LoadMapping::load(const QString &dir)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
QString fileName;
|
||||
QString suffix;
|
||||
suffix=fileInfo.suffix();
|
||||
if(suffix.toLower()!="csv")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
fileName=fileInfo.baseName();
|
||||
QFile file(filePath);
|
||||
QString line;
|
||||
QStringList sep;
|
||||
@@ -59,11 +103,16 @@ bool LoadMapping::load(const QString &dir)
|
||||
continue;
|
||||
}
|
||||
QString SFDid;
|
||||
QRegExp regExp("\\(.*\\)");
|
||||
SFDid=sep.at(0);
|
||||
QVector<QString> loads;
|
||||
SFDid=SFDid.replace(regExp,"");
|
||||
QVector<QSharedPointer<LoadInfo> > loads;
|
||||
for(int i=1;i<sep.length();i++)
|
||||
{
|
||||
loads.push_back(sep.at(i));
|
||||
QSharedPointer<LoadInfo> t(new LoadInfo);
|
||||
t->setLoadName(sep.at(i));
|
||||
loads.push_back(t);
|
||||
this->loadsToLoadInfo[sep.at(i)]=t;
|
||||
}
|
||||
this->loads[SFDid]=loads;
|
||||
|
||||
@@ -73,7 +122,6 @@ bool LoadMapping::load(const QString &dir)
|
||||
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user