Accueil > Forum > > > > Lecture fichier texte en c++ builder ( débutant )
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
Livres en rapport
|
Derniers Blogs
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|