#include "CSVReader.h" #include #include // Erstellt den Leser // path: Der Pfad der CSV Datei CSVReader::CSVReader( std::string path ) : stream( path ) { stream.seekg( 0, std::ios_base::end ); byteCount = stream.tellg(); stream.seekg( 0, std::ios_base::beg ); } // Gibt die nächste Zeile der CSV Datei zurück std::vector< std::string > CSVReader::getNextRow() { std::string line; int tmp = stream.tellg(); std::getline( stream, line ); line.erase(std::remove(line.begin(), line.end(), '\n'), line.end()); byteCount -= (int)stream.tellg() - tmp; std::stringstream lineStream( line ); std::vector< std::string > result; std::string cell; while(std::getline(lineStream,cell, ';')) result.push_back(cell); return result; } // Gibt true zurück, falls es noch eine Zeile gibt bool CSVReader::hasNext() const { return stream && !stream.eof() && byteCount > 0; } // Gibt den Fortschritt des lesens in Prozent zurück int CSVReader::getProgress() { return (int)(((int)stream.tellg() / ((int)stream.tellg() + (double)byteCount)) * 100); }