IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

lecture csv probleme


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    59
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 59
    Par d�faut lecture csv probleme
    Bonjour,
    J'ai un fichier csv contenant 3 collonnes (index,capteur1, capteur2).
    Capteur1 et capteur2 ont chacun leur valeur.
    Il y a 22 lignes dans le csv.
    J'aimerai lire tout le fichier grace a un programme en c++.
    Mais �tant d�butant en c++, je ne vois pas comment faire.
    Merci de vos r�ponses.

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Territoire de Belfort (Franche Comt�)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Par d�faut
    Bonjour,
    il faut que tu passes par un flux ifstream par exemple, afin de lire ton fichier. Regarde au niveau de la FAQ C++ t'as des exemples qui pourront t'aider :
    Par ici la FAQ

    Bon courage

  3. #3
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par lemessindu57 Voir le message
    Bonjour,
    J'ai un fichier csv contenant 3 collonnes (index,capteur1, capteur2).
    Capteur1 et capteur2 ont chacun leur valeur.
    Il y a 22 lignes dans le csv.
    J'aimerai lire tout le fichier grace a un programme en c++.
    Mais �tant d�butant en c++, je ne vois pas comment faire.
    Merci de vos r�ponses.
    La classe csv_reader, dans csv_reader.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    #include <fstream>
    #include <sstream>
    #include <string>
    #include <vector>
     
    class csv_reader
    {
    private:
      std::ifstream m_file;
     
      void split(const std::string& in, char sep, std::vector<std::string>& out)
      {
        std::stringstream stream(in);
     
    	// check both failbit and eofbit
        while (stream && !stream.eof())
        {
           std::string token;
           std::getline(stream, token, sep);
           out.push_back(token);
        }
      }
     
    public:
      csv_reader(const std::string& path)
      : m_file(path.c_str())
      { }
     
      bool fetch_next_line(std::vector<std::string>& line, char sep)
      {
        line.clear();
     
    	// check both failbit and eofbit
        if (m_file && !m_file.eof())
        {
           std::string line_string;
           std::getline(m_file, line_string);
           split(line_string, sep, line);
           return true;
        }
        return false;
      }
    };
    L'utilisateur de cette classe:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    #include <iostream>
    #include "csv_reader.h"
     
    namespace details
    {
      template <class _Type>
      struct lexical
      {
        static _Type cast(const std::string& in)
        {
          std::stringstream stream(in);
          _Type out;
          stream >> out;
          return out;
        }
      };
    }
     
    int main(int ac, const char* av[])
    {
      if (ac != 2) 
      { 
        std::cerr << "pas de fichier passé en ligne de commande" << std::endl;
        return -1;
      }
     
      // création de l'objet de lecture du fichier CSV
      csv_reader reader(av[1]);
     
      // on va en avoir besoin pour stocker les lignes
      std::vector<std::string> line;
     
      // pour chaque ligne du fichier (séparateur = ',')
      while (reader.fetch_next_line(line, ','))
      {
        // le traitement dépends du contenu du CSV. 
        // pour récupérer une valeur d'un type donné, on peut utiliser 
        // details::lexical<>::cast définie si dessus. 
        // ex: 
        if (line.size() == 3)
        {
          int index = details::lexical<int>::cast(line[0]);
          float capteur1 = details::lexical<float>::cast(line[1]);
          float capteur2 = details::lexical<float>::cast(line[2]);
          // suite du traitement...
          std::cout << "index = " << index << std::endl;
          std::cout << "\tcapteur 1 = " << capteur1 << std::endl;
          std::cout << "\tcapteur 2 = " << capteur2 << std::endl;
        }
      }
    }
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

Discussions similaires

  1. Probleme d'espace lecture CSV
    Par renovatio34 dans le forum G�n�ral Java
    R�ponses: 2
    Dernier message: 29/04/2013, 16h42
  2. R�ponses: 3
    Dernier message: 23/08/2006, 16h30
  3. [ CSV ] probleme de lecture
    Par Jeremie_Vi dans le forum Access
    R�ponses: 1
    Dernier message: 04/07/2006, 17h56
  4. [CSV] Probleme De Fichier
    Par stomerfull dans le forum Langage
    R�ponses: 8
    Dernier message: 28/06/2006, 10h34
  5. R�ponses: 9
    Dernier message: 31/01/2006, 22h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo