CSV_Reader.cc
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include"CSV_Reader.h"
00036
00037 CSV_Reader::CSV_Reader() {
00038 stream_in = new fstream();
00039 }
00040
00041 CSV_Reader::~CSV_Reader() {
00042 if(stream_in->is_open())
00043 stream_in->close();
00044 delete stream_in;
00045 }
00046
00047 const bool CSV_Reader::open(const string& filepath) {
00048 stream_in->open(filepath.c_str(),fstream::in);
00049 if(stream_in->fail() or !(stream_in->is_open()))
00050 return false;
00051 else
00052 return true;
00053 }
00054
00055 const bool CSV_Reader::close() {
00056 stream_in->close();
00057 if(stream_in->bad() || stream_in->is_open())
00058 return false;
00059 else
00060 return true;
00061 }
00062
00063 const bool CSV_Reader::eof() {
00064 return stream_in->eof();
00065 }
00066
00067 void CSV_Reader::reset() {
00068 stream_in->seekg(ios::beg);
00069 }
00070
00071 vector<string> CSV_Reader::get() {
00072 vector<string> foo;
00073 string bar;
00074
00075 getline(*stream_in, bar);
00076 foo = split(bar,",");
00077 return foo;
00078 }
00079
00080 vector<string> split(const string& str, const string& delimiters) {
00081 vector<string> tokens;
00082 string::size_type lastPos = str.find_first_not_of(delimiters, 0);
00083 string::size_type pos = str.find_first_not_of(delimiters, lastPos);
00084
00085 while(string::npos != pos || string::npos != lastPos) {
00086 if(lastPos != pos)
00087 tokens.push_back(str.substr(lastPos, pos - lastPos));
00088 lastPos = str.find_first_not_of(delimiters, pos);
00089 pos = str.find_first_of(delimiters, lastPos);
00090 }
00091
00092 return tokens;
00093 }
00094