1.加了一个历遍所有子目录的类

2.加了读入所有匹配数据的功能。

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab
2015-01-15 20:05:44 +08:00
parent 9259da0e93
commit 214c17dd10
8 changed files with 200 additions and 4 deletions

View File

@@ -0,0 +1,79 @@
#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;
}