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.
Afficher la suite