Skip to content
Snippets Groups Projects
CSVReader.h 1.53 KiB
Newer Older
  • Learn to ignore specific revisions
  • //
    // Created by martin on 14.11.18.
    //
    
    #ifndef LIB4NEURO_CSVREADER_H
    #define LIB4NEURO_CSVREADER_H
    
    
    #include <string>
    
    #include "../settings.h"
    #include "../DataSet/DataSet.h"
    
    namespace lib4neuro {
    
        /**
         *
         */
        class CSVReader {
        //TODO make more efficient - possibly with external library?
    
        private:
    
            /**
             *
             */
            std::string file_path;
    
            /**
             *
             */
            bool header_included;
    
            /**
             *
             */
            std::string delimiter;
    
            /**
             *
             */
            bool ignore_first_line;
    
            /**
             *
             */
    
            std::unique_ptr<std::vector<std::vector<std::string>>> data;
    
    
        public:
    
            /**
             *
             * @param file_path
             * @param delimiter
             * @param ignore_first_line
             */
            LIB4NEURO_API CSVReader(std::string file_path, std::string delimiter=",", bool ignore_first_line=false);
    
            /**
             *
             */
            LIB4NEURO_API void read();
    
            /**
             *
             * @return
             */
    
             LIB4NEURO_API std::unique_ptr<std::vector<std::vector<std::string>>>* get_data();
    
    
            /**
             *
             * @param input_col_indices
             * @param output_col_indices
             * @return
             */
            LIB4NEURO_API DataSet get_data_set(std::vector<unsigned int>* input_col_indices,
                    std::vector<unsigned int>* output_col_indices);
    
            /**
             *
             */
            LIB4NEURO_API void print_data();
        };
    }
    
    
    #endif //LIB4NEURO_CSVREADER_H