From b4c345e6a5fa929ba20eac19183b9c777055f52d Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:12:36 +0200 Subject: Initial commit --- Settings/Settings.cpp | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 Settings/Settings.cpp (limited to 'Settings/Settings.cpp') diff --git a/Settings/Settings.cpp b/Settings/Settings.cpp new file mode 100644 index 0000000..138eea5 --- /dev/null +++ b/Settings/Settings.cpp @@ -0,0 +1,105 @@ +#include "Settings.h" +#include +#include +#include +#include +#include + +/** +* Constructeur +* @method settings::settings +* @param fileName Nom du fichier +*/ +Settings::Settings(char const * fileName){ + std::cout<<"Number of Hidden Layers : "; + std::cin>>nbrHiddenLayers; + archi = new std::vector(nbrHiddenLayers+2); + for(int i=0;i>(*archi)[i+1]; + } + + /** + * Counter + */ + std::ifstream in(fileName); + std::string ligne; + int nbLignes = 0; + while(std::getline(in, ligne)){ + nbLignes++; + } + in.close(); + + /** + * Parser + */ + std::ifstream fichier(fileName, std::ios::in); + if(fichier){ + std::vector< std::vector > stock(nbLignes); // Tableau de chaine de caractère qui va contenir tout le fichier ligne par ligne. + std::cout << "\033[1;36m file " << "\033[1;31m" << fileName << "\033[1;36m opened with success , nbLignes= " <>ligne; + std::stringstream ss(ligne); + /** strinsplit à partir du caractère ',' */ + while (getline(ss, s, ',')) { + temp = atof(s.c_str()); + stock[j].push_back(temp); // On stock chaque information dans une case. + } + } + fichier.close(); + (*archi)[0] = (stock[0].size())-1; + for (unsigned int i = 0; i < stock.size(); i++){ + temp=stock[i][stock[i].size()-1]; + if (!(exists(temp,differentOutputs))){ + differentOutputs->push_back(temp); + } + } + (*archi)[(archi->size())-1] = (differentOutputs->size()); + } + else { + std::cerr << "\033[0;31m ERROR [ "<< "Can't open file" << " IN FILE " << __FILE__ << " AT LINE " << __LINE__ << " ] \n \033[0m"; + } +} + +/** +* @method settings::getNbrHiddenLayers +* @return Nombre de Layers "caché" +*/ +int Settings::getNbrHiddenLayers(){ + return nbrHiddenLayers; +} + +/** +* @method settings::getArchi +* @return Architecture +*/ +std::vector* Settings::getArchi(){ + return archi; +} + +/** +* @method settings::getDifferentOutputs +* @return DifferentOutputs +*/ +std::vector* Settings::getDifferentOutputs(){ + return differentOutputs; +} + +/** +* @method exists +* @param n Valeur +* @param tab Vecteur +* @return True si Valeur n et dans Vecteur tab +*/ +bool exists(double n,std::vector* tab){ + for(unsigned int i=0;isize();i++){ + if((*tab)[i]==n){ + return true; + } + } + return false; +} -- cgit v1.2.3