80 lines
1.6 KiB
C++
80 lines
1.6 KiB
C++
|
|
#include "loadmapping.h"
|
||
|
|
|
||
|
|
|
||
|
|
QHash<QString,QVector<double> > *LoadMapping::ht=NULL;
|
||
|
|
LoadMapping::LoadMapping()
|
||
|
|
{
|
||
|
|
if(!LoadMapping::ht)
|
||
|
|
{
|
||
|
|
LoadMapping::ht=new QHash<QString,QVector<double> >;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
LoadMapping::~LoadMapping()
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
bool LoadMapping::load(const QString &dir)
|
||
|
|
{
|
||
|
|
if(LoadMapping::ht->keys().length()>0)
|
||
|
|
{
|
||
|
|
return true;//只执行一次
|
||
|
|
}
|
||
|
|
if(!QFileInfo::exists(dir))
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
RecurseDir recurseDir;
|
||
|
|
recurseDir.setDir((dir));
|
||
|
|
QStringList filePathList=recurseDir.getFiles();
|
||
|
|
foreach(QString filePath,filePathList)
|
||
|
|
{
|
||
|
|
QFileInfo fileInfo(filePath);
|
||
|
|
if(!fileInfo.exists())
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
QString fileName;
|
||
|
|
QString suffix;
|
||
|
|
suffix=fileInfo.suffix();
|
||
|
|
if(suffix.toLower()!="csv")
|
||
|
|
{
|
||
|
|
continue;
|
||
|
|
}
|
||
|
|
fileName=fileInfo.baseName();
|
||
|
|
QFile file(filePath);
|
||
|
|
QString line;
|
||
|
|
QStringList sep;
|
||
|
|
if(file.open(QFile::ReadOnly))
|
||
|
|
{
|
||
|
|
QTextStream reader(&file);
|
||
|
|
while(!reader.atEnd())
|
||
|
|
{
|
||
|
|
line=reader.readLine().trimmed();
|
||
|
|
sep=line.split(',');
|
||
|
|
if(sep.length()<2)
|
||
|
|
{
|
||
|
|
continue;
|
||
|
|
}
|
||
|
|
QString SFDid;
|
||
|
|
SFDid=sep.at(0);
|
||
|
|
QVector<QString> loads;
|
||
|
|
for(int i=1;i<sep.length();i++)
|
||
|
|
{
|
||
|
|
loads.push_back(sep.at(i));
|
||
|
|
}
|
||
|
|
this->loads[SFDid]=loads;
|
||
|
|
|
||
|
|
}
|
||
|
|
file.close();
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
return true;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|