#include "csvhandler.h" #include #include #include #include void CSVHandler::ReadCsvFile(QString fullpath, Houses &hlist) { QFile file(fullpath); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) throw -1; QByteArray csvd = file.readAll(); file.close(); QStringList l; int pos=0; int endpos =-1; int s = csvd.size(); while(pos2 &&(csvd[endpos-1]=='\\' || csvd[endpos-1]=='\"'))) {endpos = csvd.indexOf('\"',endpos+1); } l.append(csvd.mid(pos+1,endpos-pos+1)); pos=endpos+2; } else { int nextcommapos= csvd.indexOf(',',pos); int nextNLpos = csvd.indexOf('\n',pos); if(nextcommapos==-1 && nextNLpos==-1 ) { endpos = csvd.size()-1; } else if(nextcommapos==-1) { endpos = nextNLpos; } else if(nextNLpos==-1) { endpos = nextcommapos; } else { endpos= nextcommapos>nextNLpos? nextNLpos:nextcommapos; } l.append(csvd.mid(pos,endpos-pos)); pos=endpos+1; } //std::cout << pos - csvd.size()<