Skip to content
Snippets Groups Projects
CSVReader.h 914 B
Newer Older
  • Learn to ignore specific revisions
  • Radim Vavřík's avatar
    Radim Vavřík committed
    // CSVReader.h
    #pragma once
    
    #include <fstream>
    #include <vector>
    #include <string>
    #include <memory>
    
    namespace math1d_cl 
    {
    	/**
    	 * @brief CSVReader reads CSV files.
    	 * @details Reads CSV files. Parses first line as header. Returns empty lines as empty row.
    	 * 
    	 * @param decimal decimal point char
    	 * @param separator column separator char
    	 * 
    	 */
    	class CSVReader 
    	{
    		public:
    			CSVReader(char decimal, char separator);
    			void open(std::string file);
    			void close();
    			std::shared_ptr<std::vector<std::string>> getRow();
    			std::shared_ptr<std::vector<std::string>> getHeader();
    			bool eof();
    
    		private:
    			void explode(std::string input, std::shared_ptr<std::vector<std::string>> output, const char delimiter);
    			
    			std::ifstream m_fileStream; // Input file stream
    			std::shared_ptr<std::vector<std::string>> m_header; // CSV Header
    
    			const char m_decimal;
    			const char m_separator;
    	};
    
    }