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++Builder Discussion :

Lecture de fichier


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Points : 106
    Points
    106
    Par défaut Lecture de fichier
    Bonjour à tous !!

    J'ai un souci avec la lecture d'un fichier texte... je sais c'est culcul

    Bon alors je le lis très bien, mais ce que je voulais faire, c'est récupérer le nombre de lignes puis exploiter cela. Voici donc mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
         ifstream fichier;
         fichier.open("toto.txt");
     
         string s;
         int nblignes=0;
         while(getline(fichier,s))
           nblignes++;
         fichier.seekg(0, ios::beg);
    Seulement petit problème, ça ne me replace pas au début du fichier.... Je pensais qu'un seekg ferait l'affaire, j'ai lu sur plusieurs forums que c'était ça, mais là, ça marche pas. Est-ce qu'il y a qqch que je fais mal ??

    Merci de m'éclairer !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par androz Voir le message
    Bonjour à tous !!

    J'ai un souci avec la lecture d'un fichier texte... je sais c'est culcul

    Bon alors je le lis très bien, mais ce que je voulais faire, c'est récupérer le nombre de lignes puis exploiter cela. Voici donc mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
         ifstream fichier;
         fichier.open("toto.txt");
     
         string s;
         int nblignes=0;
         while(getline(fichier,s))
           nblignes++;
         fichier.seekg(0, ios::beg);
    Seulement petit problème, ça ne me replace pas au début du fichier.... Je pensais qu'un seekg ferait l'affaire, j'ai lu sur plusieurs forums que c'était ça, mais là, ça marche pas. Est-ce qu'il y a qqch que je fais mal ??

    Merci de m'éclairer !
    Tu ne fais rien de mal, il faut juste utiliser la fonction clear avant le seekg pour qu'il fonctionne... C'est bizarre, mais c'est comme ça...
    Ca donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fichier.clear();
    fichier.seekg(0, ios::beg);
    C'est pas dans la FAQ C++, ça ?

  3. #3
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 309
    Points
    1 309
    Par défaut
    Si c'est pour traiter un fichier texte, tu peux utiliser TStringList qui est bien pratique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TStringList *fichier = new TStringList();
    fichier->LoadFromFile("C:\\toto.txt");
    for( int i=0; i< fichier->Count; i++ )
    {
      //traitement
      ShowMessage( fichier->Strings[i] ) ; // affiche la i-ème ligne du fichier
    }
    delete fichier; //libération de l'objet
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  4. #4
    Membre régulier
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par Kaji Voir le message
    Tu ne fais rien de mal, il faut juste utiliser la fonction clear avant le seekg pour qu'il fonctionne... C'est bizarre, mais c'est comme ça...
    Ca donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fichier.clear();
    fichier.seekg(0, ios::beg);
    C'est pas dans la FAQ C++, ça ?
    Oki merci !!! Je vais essayer ça !
    Pour ce qui est de la FAQ, j'ai regardé dans celle sur le C++ (pas celle de Builder) et y'a justement une FAQ sur comment calculer le nombre de lignes. J'ai donc juste copié le truc, j'ai rien inventé bien sur, et non, aucun clear avant le seekg
    Merci encore !

Discussions similaires

  1. [Windows]lecture des fichier lnk (raccourcis)
    Par Tiaps dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 21/10/2009, 19h27
  2. [jsp]lecture de fichier
    Par antigone dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/09/2003, 11h05
  3. [AS400][Intranet][PC] Lecture de "fichiers" AS400
    Par lando dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/07/2003, 11h11
  4. Lecture de fichier
    Par Watcha dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 04/03/2003, 20h43
  5. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43

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