Lire un fichier csv avec séparateur ";"

Fermé
Rhamm94 Messages postés 11 Date d'inscription lundi 16 mars 2015 Statut Membre Dernière intervention 21 octobre 2015 - Modifié par Rhamm94 le 22/10/2015 à 09:04
 rhamm94 - 26 oct. 2015 à 10:39
Bonjour,

Je souhaiterais savoir comment lire un fichier csv avec séparateur ";".

Car je voudrais renseigner une structure avec les informations lus dans un fichier.

Ci-dessous le fichier dans lequel je veux importer mes données dans un structure :

Societe;ClientSite;ClientCompta;Groupe;Fjuri;Nom;Enseigne;Adresse1;Adresse2;Cpost;Ville;Tel;Fax;Email;Siret;Affacturage


Prendre en compte les champs vides afin de ne pas perturber ma structure :

Societe;ClientSite;ClientCompta;;Fjuri;Nom;Enseigne;Adresse1;;Cpost;Ville;Tel;;Email;Siret;Affacturage


Mais aussi comment récupérer ces infos et renvoyer ces valeurs dans ma structure ?

Merci pour votre aide.
Voici une ébauche de mon programme :

#include <iostream>
#include <cstdlib>
#include <string>

#include <fstream>
#include <sstream>

using namespace std;



 struct Adresse {
string Societe;
string ClientSite;
string ClientCompta;
string Groupe;
string Fjuri;
string Nom;
string Enseigne;
string Adresse1;
string Adresse2;
string Cpost;
string Ville;
string Tel;
string Fax;
string Email;
string Siret;
string Affacturage ;
};

istream & operator >> (istream & stream, Adresse & Client)
           {
            getline(stream, Client.Societe, ';');
            getline(stream, Client.ClientSite, ';');
            getline(stream, Client.ClientCompta, ';');
            getline(stream, Client.Groupe, ';');
            getline(stream, Client.Fjuri, ';');
            getline(stream, Client.Nom, ';');
            getline(stream, Client.Enseigne, ';');
            getline(stream, Client.Client1, ';');
            getline(stream, Client.Client2, ';');
            getline(stream, Client.Cpost, ';');
            getline(stream, Client.Ville, ';');
            getline(stream, Client.Tel, ';');
            getline(stream, Client.Fax, ';');
            getline(stream, Client.Email, ';');
            getline(stream, Client.Siret, ';');
            getline(stream, Client.Affacturage);
            return stream;
            }

ostream & operator << (ostream & stream, Adresse Client const & Client)
    {
        return stream
            << Client.Societe << " "
            << Client.ClientSite << " "
            << Client.ClientCompta << " "
            << Client.Groupe  <<  " "
            << Client.Fjuri << " "
            << Client.Nom << " "
            << Client.Enseigne << " "
            << Client.Client1 << " "
            << Client.Client2 << " "
            << Client.Cpost << " "
            << Client.Ville << " "
            << Client.Tel << " "
            << Client.Fax << " "
            << Client.Email << " "
            << Client.Siret << " "
            << Client.Affacturage;
    }


void afficherListeAdresse()
{

string ligne; //Une variable pour stocker les lignes lues


ifstream adresseClient("Adresseclients.csv");
    if(adresseClient)
    {
    //L'ouverture s'est bien passée, on peut donc lire
        while(getline(adresseClient, ligne)) //Tant qu'on n'est pas à la fin, on lit
        {
 Vector <Adresse> Client;
 Stream>>Client;
 
        }
 cout <<Client ;
    }

    else
    {
    cout << "ERREUR: Impossible d'ouvrir le fichier en lecture." << endl;
    }

    adresseClient.close(); //On referme le fichier
    //On ne peut plus écrire dans le fichier à partir d'ici


}

int main()
{

afficherListeAdresse();

    return 0;
}



EDIT : correction des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

Bonjour,

Est ce que quelqu'un pourrait m'aider s'il vous plait ?

Merci.
0