#include "loadmapping.h" QHash > *LoadMapping::ht=NULL; LoadMapping::LoadMapping() { if(!LoadMapping::ht) { LoadMapping::ht=new QHash >; } } 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 loads; for(int i=1;iloads[SFDid]=loads; } file.close(); } } return true; }