Interpreter un fichier

Signaler
Messages postés
18
Date d'inscription
samedi 30 janvier 2010
Statut
Membre
Dernière intervention
24 octobre 2011
-
Messages postés
18
Date d'inscription
samedi 30 janvier 2010
Statut
Membre
Dernière intervention
24 octobre 2011
-
Bonjour tout le monde,
je suis en train de développer une application en c++ qui va lire et inserer dans une base de donnée créer avec access des musiques d'un fichier excell .csv(chacune etant séparé par des point virgule lorsqu'on l'ouvre par blocknote),
je sais lire le fichier et ecrire dedans,
mais le probleme est que je ne sais pas comment dire au logiciel quelles infos inserer dans quelles colonnes d'une table, car je ne sais pas comment le faire distinguer les point virgules des autres caractères,
est ce qu'il existe une fonction qui permet de rechercher un caractere comme un point virgule?
par la suite je dirai au logiciel d'inserer dans la base les caractere se situant avant ce point virgule mais la encore je suis bloqué car je ne sais même pas comment me connecter a une base, s'il vous plait est ce que quelqu'un peut m'aidez?

4 réponses

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

strchr()

@++
Messages postés
18
Date d'inscription
samedi 30 janvier 2010
Statut
Membre
Dernière intervention
24 octobre 2011

Merci, mais malheureusement, je suis bloquer avec cette fonction, car je que la lecture de chaque ligne s'arrete lorsque le point virgule est trouver, puis que la la portion lu soit inserer dans la base, que la lecture reprenne et ainsi de suite pour chaque ligne.
Je suisen train de devenir dingue, a chercher l'algo adequat.
Messages postés
18
Date d'inscription
samedi 30 janvier 2010
Statut
Membre
Dernière intervention
24 octobre 2011

Est ce qu'il existe une fonction qui donne l'emplacemnt d'un caratere dans la chaine, connaissant l'emplacemnt de ce caractere je vais utiliser une autre qui permet de copier la partie allant du debut de la chaine au caractere, et l'inserer dans la base?
Messages postés
18
Date d'inscription
samedi 30 janvier 2010
Statut
Membre
Dernière intervention
24 octobre 2011

J'ai trouver comment faire le parseur, voici le code:
#include<conio.h>
#include 
#include <fstream>
#include <string>
#include <limits>  // pour utiliser numeric_limits::max()


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
using namespace std;
 
int main()
{
    char	*pointeur;
    char	*separateur = { ";" };     // Le séparateur
    char    *buffer;
        
        
        ifstream fichier("Playlist.csv", ios::in);
 
        if(!fichier.fail())
        {
                
 
                string ligne;
                while(getline(fichier, ligne))
                {
                        int     nb_mot=1;
                        size_t size = ligne.size() + 1;
                        char * tampon = new char[ size ];
                        // copier la chaîne
                        strncpy( tampon, ligne.c_str(), size );
                        buffer = strdup ( tampon );
                        // premier appel,
                        pointeur = strtok( buffer, separateur  );
                        printf (" Mot de la phrase numero : %d %s\n",nb_mot, pointeur);
                        	    
                        while( pointeur != NULL ) 
                        {
                        // Cherche les autres separateur
                        pointeur = strtok( NULL, separateur  );
                        if ( pointeur != NULL )
                        {
                        nb_mot++; // increment du nombre de mot	
                        printf ("Mot de la phrase numero : %d %s\n",nb_mot, pointeur);
                        }
                        }

                       	    
                        
                }
                        
               
                fichier.close();        
        }
        else
                cerr << "Impossible d'ouvrir le fichier !" << endl;
 
        getchar();
}


Parcontre je ne connais pas le code pour inserer dans une base de donnée, toute aide est la bienvenue.