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 fichier texte


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut Lecture fichier texte
    Bonjour.
    Je veux lire ligne par ligne à partir d'un fichier txt et les décortiquer à fin de tirer les informations qui m'interesse et les insérer au niveau de ma base de données,
    Mon problème c'est que je n'arrive pas à lire le fichier ligne par ligne et les décortiquer
    Si vous pouvez m'aider en me transmettant une partie de code qui fait l'affaire,
    Je compte beaucoup sur votre aide, je suis vraiment très pressé par le temps.
    D'avance merci infiniment

  2. #2
    Membre Expert
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Par défaut
    Bonjour.

    On peut savoir où tu bloques et quel est ton OS ?
    As tu fait un bout de code ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut
    bonjour,
    voila mon problème:
    je veux lire un fichier ligne par ligne, decortiquer chaque ligne, tirer les information necessaire et les inserer dans une BDD Mysql,

    je lis le fichier ligne par ligne et je récupére la lignen dans un string,
    aprés je decortique le string sans problème, au moment d'insertion au niveaud de la base mysql, j'utilise une fonction dont je doit passer la connexion de tye Mysql* et la requête de type char.
    je doit formuler la requete dans un char alors que les informations que j'ai tirer du fichier sans des string,
    voila le 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
    // lecture_fichier.txt
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <mysql.h>
     
    using namespace std;
     
    int main()
    {
       ifstream file( "fichier.txt" );
       string line;
       MYSQL *conn;
       while( getline( file, line ) )
       {
    	  string var1 (line, 4, 15);
    	  string var2 (line, 24,4);
    	  string var3 (line, 50, 3);
    string requete1 ("insert into table(champs1,champs2,champs3) values('");
    string requete2 ("','");
    string requete3 ("')");
    string requete_final = requete1 + var1 + requete2 + va2 + requete2 + var3 + requete3;
    mysql_query(conn,requete_final );
       }
       return 0;
    }
    la compilation donne l'erreur suivante:
    error C2664: 'mysql_query' : cannot convert parameter 2 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
    No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
    s'il y a de possibilité de convertir le string to int ça sera la meilleur solution, sinon on doit récupérer les ligne de fichier dans un char et pas un string et on le decortique dans unchar et composer ma requete en tant que char, et y'aura pas de problème,
    voila je sais quoi faire mais je sais pas implementer une solution par C++
    merci d'avance

    ps : j'ai oublié je travail avec visual studio 6.0 sous Windows
    merci

  4. #4
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Je ne connais rien a MySQL, mais au vu de l'erreur, essaye de faire ceci (il veut un const char* au lieu d'un string en fait).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string requete_final = requete1 + var1 + requete2 + va2 + requete2 + var3 + requete3;
    mysql_query(conn,requete_final );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string requete_final = requete1 + var1 + requete2 + va2 + requete2 + var3 + requete3;
    const char[] test = requete_final.c_str();
    mysql_query(conn,test );

    Je n'ai pas tester, mais j'ai plusieurs fois vu cette astuce.
    Essaye et tiens nous au courant.

  5. #5
    Membre chevronné
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Par défaut
    Citation Envoyé par SofEvans Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string requete_final = requete1 + var1 + requete2 + va2 + requete2 + var3 + requete3;
    const char[] test = requete_final.c_str();
    mysql_query(conn,test );
    Ceci devrait résoudre l'erreur, en effet.
    Par contre, il est inutile de créer une variable temporaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query(conn,requete_final.c_str() );
    Autre chose, il est inutile de faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string requete1 ("insert into table(champs1,champs2,champs3) values('");
    string requete2 ("','");
    string requete3 ("')");
    string requete_final = requete1 + var1 + requete2 + va2 + requete2 + var3 + requete3;
    Tu peux tout simplement écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string requete_final = "insert into table(champs1,champs2,champs3) values(" + var1 + "," + var2 + "," + var3 + ")";
    (par contre gaffe aux injections)

  6. #6
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Citation Envoyé par JulienDuSud Voir le message
    Ceci devrait résoudre l'erreur, en effet.
    Par contre, il est inutile de créer une variable temporaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query(conn,requete_final.c_str() );
    Exact, c_str() renvoit un const char qui est bien le type qu'il faut. Je me suis embrouiller pour rien, merci de me l'avoir fait remarqué.

Discussions similaires

  1. Lecture fichier texte
    Par vince-60 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/04/2006, 14h15
  2. [VB]Probleme lecture fichier text et affichage
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2006, 08h46
  3. lecture fichier texte et ...
    Par Nils30 dans le forum Langage
    Réponses: 5
    Dernier message: 12/01/2006, 11h55
  4. lecture fichier text et renvoi du contenu en byte *
    Par JulienT dans le forum Réseau
    Réponses: 3
    Dernier message: 02/01/2006, 13h21
  5. Lecture fichier text
    Par krfa1 dans le forum ASP
    Réponses: 13
    Dernier message: 25/11/2005, 08h00

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