d@0: /* d@0: ============================================================================== d@0: d@0: ParseCSV.cpp d@0: Created: 27 Aug 2014 3:18:54pm d@0: Author: david.ronan d@0: d@0: ============================================================================== d@0: */ d@0: d@0: #include "ParseCSV.h" d@0: #include "AudioFileData.h" d@0: d@0: #include d@0: #include d@0: #include d@0: d@0: ParseCSV::ParseCSV() d@0: { d@0: d@0: }; d@0: d@0: ParseCSV::~ParseCSV() d@0: { d@1: d@0: }; d@0: d@0: AudioFileData ParseCSV::Parse(std::string fileName) d@0: { d@0: //open the file from which to read the data d@1: std::ifstream myFile;// = std::ifstream(); d@0: d@0: myFile.open(fileName, std::ifstream::in); d@0: d@0: std::vector data = ReadLines(myFile); d@0: d@0: std::vector fileNames = std::vector(); d@0: std::vector labels = std::vector(); d@0: d@0: for (size_t i = 0; i < data.size(); i++) d@0: { d@0: std::string s = data[i]; d@0: std::string delimiter = ","; d@0: d@0: std::string newfile = ""; d@0: std::string newlabel = ""; d@0: d@0: size_t pos = 0; d@0: int idx = 1; d@0: std::string token = ""; d@0: d@0: while ((pos = s.find(delimiter)) != std::string::npos) d@0: { d@0: token = s.substr(0, pos); d@0: d@0: switch (idx) d@0: { d@0: case 1: d@0: newfile = token; d@0: idx++; d@0: break; d@0: default: d@0: break; d@0: } d@0: d@0: s.erase(0, pos + delimiter.length()); d@0: newlabel = s; d@0: } d@0: d@0: fileNames.push_back(newfile); d@1: labels.push_back(newlabel); d@0: } d@0: d@0: m_AudioFileData = AudioFileData(fileNames, labels); d@0: d@0: myFile.close(); d@0: d@0: return m_AudioFileData; d@0: } d@0: d@0: std::vector ParseCSV::ReadLines(std::ifstream& is) d@0: { d@0: std::vector lines = std::vector(); d@0: std::string line = ""; d@0: d@0: while (std::getline(is, line)) d@0: { d@0: lines.push_back(line); d@0: } d@0: d@0: return lines; d@9: }