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 :

Fichier csv et Code blocks


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    �tudiant
    Inscrit en
    Mars 2017
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Par d�faut Fichier csv et Code blocks
    Bonjour tout le monde,

    J'ai besoin de votre aide sur ce petit probl�me sur code blocks. Je vous remercie d'avance pour tous vos r�ponses
    J'ai un fichier.csv, il contient x lignes et y colonnes, mais je sais pas comment faire pour importer les donn�es de ce fichier sur code blocks
    J'ai trouv� pas mal de programme c++ en ligne mais tous �taient non fonctionnels, � chaque fois il y avaient des erreurs qui j'arrive pas � les comprendre (je suis d�butante en programmation cpp).

    Svp qui peut m'aider pour avoir un prog fonctionnel

    Merci

  2. #2
    Membre �clair� Avatar de Seabirds
    Homme Profil pro
    Post-doctoral fellow
    Inscrit en
    Avril 2015
    Messages
    294
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Post-doctoral fellow
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 294
    Par d�faut
    Salut,

    La lecture de fichiers CSV n'est pas directe en C++. Venant de R qui automatise compl�tement leur lecture avec ses fameux dataframes et sa fonmction read.csv, cela m'a d�stabilis�. Finalement lire un CSV est une tache pas triviale du tout et C++ nous le rappelle, c'est tout.

    Il y a deux ans j'avais �crit un script quick&dirty tr�s sp�cifique a mon probl�me pour lire un csv. Crado + sp�cifique = pas r�utilisable, donc deux ans apr�s je dois me retaper le m�me travail pour un fichier un peu diff�rent, et j'essaie de faire les choses un peu mieux: jette un coup d��il a ce tutoriel: https://julien-blanc.developpez.com/...csv-c++/#LIX-A

    Le code propose est assez g�n�ral pour �tre r�utilisable, mais ce n'est pas certain que ce soit facile a comprendre. Si tu ne peux/veux pas utiliser ce code, parce que trop g�n�ral et trop complexe, mais que tu as du mal a �crire ton propre code pour une utilisation plus sp�cifique a ton probl�me, on peut t'aider, mais il va falloir que tu en dises plus sur la structure de ton fichier et l'utilisation que tu veux en faire.

    Bon courage!

  3. #3
    Membre averti
    Femme Profil pro
    �tudiant
    Inscrit en
    Mars 2017
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Par d�faut
    Salut,

    Je vous remercie de m'avoir r�pondu

    Je vais vous expliquer quel est l'objectif de mon programme:
    1- importer mon fichier.csv sur code::blocks (ce fichier est constitu� des valeurs de type double);
    2- stocker ces valeurs dans une matrice de n lignes et m colonnes (dans mon cas 202 lignes et 16 colonnes);
    3- appliquer quelques formules math�matiques sur les [i][j] de la matrice.

    Je me suis dit que je dois commencer par un truc simple par exemple une lignes compos�e de 2 valeurs doubles s�par�es par un point virgule (.
    En utilisant getline() j'ai r�ussi � lire ma ligne, apr�s je sais bien qu'il faut utiliser les fonctions find et substr pour la d�couper et vector<double> pour stocker le r�sultat.
    Mais j'ai pas compris comment utiliser les fonctions find, substr, vector
    tt ce que j'ai r�ussi � faire c'est lire la ligne avec getline
    voil� mon code :

    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
    #include <stdlib.h>
    #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <vector>
    #include <cstdio>
    #include <string.h>
    using namespace std;
     
    int main()
    {
       ifstream fichier ("C:/Users/AH673B4N/Documents/_Developpement/Dymola/ThreePhaseCableABCDBuilder/Inputs/mesuree.csv");
        if (fichier)
        {
            string ligne;
            while(getline(fichier,ligne))
     
            {
                cout << ligne<< endl;
                int pos = ligne.find (";");
                string ligne1;
                ligne1 = ligne.substr(pos+1);
                cout << ligne1<<endl;
            }
        }
        else
        {
            cout << " erreur" << endl;
        }
     
        return 0;
    }
    et voil� la sortie de mon code :
    Nom : Capture.PNG
Affichages : 823
Taille : 12,1 Ko


    Svp n'h�sitez pas � me donner vos conseils
    Merci

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    Pour le d�coupage d'une chaine avec des ";" :
    https://stackoverflow.com/questions/...ing-tokens-e-g

    Sinon, Google (et la communaut� surtout) est ton ami:
    https://github.com/ben-strasser/fast-cpp-csv-parser

  5. #5
    Membre averti
    Femme Profil pro
    �tudiant
    Inscrit en
    Mars 2017
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Par d�faut
    Bonjour

    j'ai fait un petit essai avec un fichier simple compos� d'une seul ligne qui contient deux valeurs doubles.
    j'ai r�ussi � lire ce fichier et d�couper la ligne en fonction de mon d�limiteur (le point virgule) et de stocker les deux valeurs dans un vecteur.
    voici mon code et si vous avez des remarques enrichissantes n'h�sitez pas � laisser un commentaire.

    merci

    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
    #include <iostream>
    #include <stdlib.h>
    #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <vector>
    #include <cstdio>
    #include <string.h>
    #include <cstdlib>
     
    using namespace std;
     
     
    int main()
    {
       ifstream file("fichier.csv");
       string line;
       vector<double> vec;
       while (getline(file, line))
    {
           cout << line << endl;
           istringstream ss(line);
           string word;
           while (getline(ss, word,';')){
           double value = strtod(word.c_str(), NULL); // cnversion string to double
           vec.push_back(value); //remplissage du vecteur
      }
    }
    //Affichage du vecteur
    for (int i = 0; i < vec.size(); i++){
            cout << vec[i] << '\n';
     }
     //cout << vec[0] << " " << vec [1] ;
        return 0;
    }

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. linker fichier .res dans code blocks
    Par mukiwara dans le forum Code::Blocks
    R�ponses: 2
    Dernier message: 01/09/2012, 11h45
  2. cr�er un fichier .lib avec code::blocks
    Par jellad.tarek dans le forum Biblioth�ques, syst�mes et outils
    R�ponses: 9
    Dernier message: 24/03/2012, 09h48
  3. Fichiers g�n�r�s par Code::Blocks
    Par Darkthief dans le forum Code::Blocks
    R�ponses: 3
    Dernier message: 06/08/2009, 08h11
  4. code::blocks et les fichiers
    Par acacia dans le forum Code::Blocks
    R�ponses: 5
    Dernier message: 17/05/2008, 21h41
  5. Probl�me prise en compte fichier Code:Blocks
    Par drefou dans le forum GTK+ avec C & C++
    R�ponses: 3
    Dernier message: 11/09/2007, 10h34

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