begin process at 2012 02 11 10:50:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Lecture fichier texte en c++ builder ( débutant )


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lecture fichier texte en c++ builder ( débutant )

mercredi 8 février 2006 à 23:04:47 | Lecture fichier texte en c++ builder ( débutant )

m1b

Hello,

Je sais il y a beaucoup  de post sur la lecture des fichiers textes, je les ai lus mais je n'ai pas réussi à m'en sortir... ( je suis débutant en c++ )  En gros voilà ce qui se passe,j'ai créer une fenètre avec 2 boutons  je presse sur  mon bouton  1 ça me crée un fichier test.txt dans c: Ok c'est bon. Ensuite un autre bouton lorsque je clique va lire le fichier texte et afficher son contenu dans un champ , mais ce qui se passe avec ma boucle c'est qu'il arrive sur la dernière ligne du fichier texte sur "
1926 Fully" et il ne m affiche que 1926 Fully dans mon champ, et je n 'arrive pas à comprendre pourquoi les autre lignes ne sont pas affichées...

si vous pouviez me donner un coup de pouce ça serait super


Voilà le code ( plus bas encore il y a un second code j 'ai essayé d'une autre manière mais je pense que le plus facile à corriger c'est le code 1 le 2 eme je l'ai juste mis comme ça pour voir...) pour ce code 1 il ne doit pas manqué beaucoup pour que le programme fonctionne...

merci de votre aide




CODE 1

//---------------------------------------------------------------------------
#include <string>
#include <fstream>
#include <iostream>
#include <vcl.h>
#pragma hdrstop
#include <stdio>  // insertion de la librairie stdio
#include "projetcreation.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TUfmMain *UfmMain;
//---------------------------------------------------------------------------
__fastcall TUfmMain::TUfmMain(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TUfmMain::BuCreatClick(TObject *Sender)
{

FILE* fichierRapport = NULL; // déclaration de mon fichier
 fichierRapport = fopen("C:\\test.txt", "w");  // création du fichier puis, puis accès en écriture

    fprintf(fichierRapport, "Germain\n " );
    fprintf(fichierRapport, "\n Carron ");
    fprintf(fichierRapport, "\n Av de la Gare ");
    fprintf(fichierRapport, "\n 1926 Fully");


 fclose(fichierRapport);  // fermeture du fichier, ne pas oublier

}

//---------------------------------------------------------------------------

void __fastcall TUfmMain::buLireClick(TObject *Sender)
{
    std::ifstream fichierRapport("C:/test.txt");

    if (!fichierRapport)
    {
        // Erreur d'ouverture de fichier
    }

    std::string ligne ;  // variable qui contient la ligne lue

    while (std::getline(fichierRapport, ligne))  // ligne qui est toujours ma variable qui stock les données
    {
        std::cout << ligne << std::endl;
      
    }

    edResult->Text = ligne.c_str();
}
//---------------------------------------------------------------------------


CODE 2 (  ESSAI  d'une autre manière )

//---------------------------------------------------------------------------
#include <string>
#include <fstream>
#include <iostream>
#include <vcl.h>
#pragma hdrstop
#include <stdio>  // insertion de la librairie stdio
#include "projetcreation.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TUfmMain *UfmMain;
//---------------------------------------------------------------------------
__fastcall TUfmMain::TUfmMain(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TUfmMain::BuCreatClick(TObject *Sender)
{

FILE* fichierRapport = NULL; // déclaration de mon fichier
 fichierRapport = fopen("C:\\test.txt", "w");  // création du fichier puis, puis accès en écriture

    fprintf(fichierRapport, "Germain\n " );
    fprintf(fichierRapport, "\n Tenthorey ");
    fprintf(fichierRapport, "\n Ruelle des Cartes 19 ");
    fprintf(fichierRapport, "\n 1926 Fully");


 fclose(fichierRapport);  // fermeture du fichier, ne pas oublier

}

//---------------------------------------------------------------------------

void __fastcall TUfmMain::buLireClick(TObject *Sender)
{
    FILE* fichierRapport ;
     char szBuffer;

    if(( fichierRapport = fopen("fichier.txt", "r")) != NULL ) // on ouvre le fichier

    {
     while (!feof(fichierRapport))
      {
     fread(&szBuffer, 1, 1, fichierRapport);

     if(szBuffer == '\0') //si c'est la fin de la ligne
     printf("\n"); //on "affiche" un saut de ligne
     printf("%c", szBuffer); //on affiche ce que contient le buffer

        }

     }



   edResult->Text = szBuffer;
     fclose(fichierRapport);



jeudi 9 février 2006 à 14:26:34 | Re : Lecture fichier texte en c++ builder ( débutant )

Dvdmizo

salut,

je pense que ton problème vient du fait que tu utilises un composant TEdit pour faire tes affichages. Ce composant n'est pas multilignes donc il ne t'affiche pas tout ça me parait normal de plus tu fais ceci :

while (std::getline(fichierRapport, ligne))  // tu lis une ligne
    {
        std::cout << ligne << std::endl;   // tu l'affiches ? (c'est pas vraiment l'idéal avec C++ Builder)
       // et tu boucles tant qu'il reste des lignes à lire en écrasant à chaque fois l'ancienne ligne dans ta variable
    }

    // donc forcément quand tu arrives ici, ta variable ne contient plus que la dernière ligne
    edResult->Text = ligne.c_str();


Essaye de placer un TMemo sur ta fiche et de lui affecter ce que tu lis depuis ton fichier :

// ici le Memo s'appelle par exemple : Memo1

while (std::getline(fichierRapport, ligne)) 
    {
       Memo1->Lines->Add(ligne) ;    // on ajoute la ligne lue au memo
    }


j'espère que ça t'aidera

DvdMizo
jeudi 9 février 2006 à 17:56:38 | Re : Lecture fichier texte en c++ builder ( débutant )

m1b

merci bien , j'ai modifier encore certaines chose et maintenant c'est ok,  il faut que je trouve encore des informations sur comment traiter le texte de manière à ce qu'il le lise sur une seule ligne maintenant il le lit
xxxxxx
xxxxx
xxxxxx
xxxxx
 
et il faut que j'arrive à xxxxxxx xxxxxxx xxxxxx xxxxxx
je pense que je doit dire supprime "/n" ou ne tient pas compte de "/n"

mardi 14 février 2006 à 22:06:31 | Re : Lecture fichier texte en c++ builder ( débutant )

hamidkhelifa

Salut!!! en faite tu peut aussi mettre ton fichier sure uneligne dans un Tedit edResult->Text = ligne.c_str();cette ligne de code permet d'ecrire un texte sur la ligne existante ..c pour ça que a la fin tu n'a que la dernier ligne sur ton Tedit le code corecte c cette ligne edResult->Text=edResult->Text+ligne.c_str(); ça te permet de adiciner toute les ligne sur un Tedit.
mardi 14 février 2006 à 22:31:42 | Re : Lecture fichier texte en c++ builder ( débutant )

hamidkhelifa

ehhh e si tu veut separer les ligne avec un espace il faut mettre +" " a la fin edResult->Text=edResult->Text+ligne.c_str()+" ";


Cette discussion est classée dans : fichier, ligne, include, fichierrapport, tufmmain


Répondre à ce message

Sujets en rapport avec ce message

Lecture d'un fichier et affichage de balises [ par SpiritAnghell ] Bonjour;Le programme suivant est censé extraire les balises d'un fichier xml et les afficher une par une:#include #include #include #include #include ecrire dans un fichier [ par guiillt ] Bonjour,j'aimerai lire un fichier ligne par ligne et ensuite ecrire ces lignes dans une autre fichier,le probleme c'est qu'il ecrase systematiquement à l'aide pour fusioné la fonction getline + fct strtok [ par yanlou ] salut,voici mon problmé, je veux lire un fichier txt, je le fais avec la fonction getline. voici le code :#include #include #include int main(){    c++ urgence svp [ par yanlou ] maximus salut,j'ai u fichier txt qui contient des chaine de caracté, exemple :RFRPAD7RFRPAD8/A8 Lecture fichier .config [ par wislam2007 ] Salut j ai un fichier .config contient une seul ligne, j'utilise visual c++ 6, comment puis-je faire pour lire ma 1ere ligne? A vs[^^sad1] memmove() et fichiers ? [ par boualiasma ] Salut, 1) je trouve un exemple de memmove() sous windows : Code : C 1 2 3 4 5 6 7 8 9 10 11 12 /* memmove example */ #include #includ ecriture sur une ligne particuliere dans un fichier [ par rahelthaoser ] Bonjour à tous, voila j'ai un petit probleme: pour un projet informatique s'appelant le car sharing (pour l'anecdote), je voudrais ecrire dans un fich moyennage besoin d'aide [ par cedm237 ] Bonjour, je connais pas grand chose en C, mais j'ai besoin d'un petit code, qui me fasse ceci: -j'ai un fichier contenant 1millions de ligne de coordo erreur de pointeur [ par africanwinners ] Bonsoir j'ai concu un programme c qui permet de lire un fichier,de supprimer les doublons (les doubles) mais il y a des problèmes lors de la lecture d Problème [ par kamal25 ] J'ai essayé de écrire dans un fichier je veux qu'il me sorte Date de naissance 24/3/1988 Bonjour Xav57 vous avez 19 ans alors il me sort Date de na


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,568 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales