begin process at 2012 05 29 10:18:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

ecrire dans un edit a partir d'un fichier texte a lire ligne pa ligne


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

ecrire dans un edit a partir d'un fichier texte a lire ligne pa ligne

mardi 22 mai 2007 à 16:46:58 | ecrire dans un edit a partir d'un fichier texte a lire ligne pa ligne

sarah62223

Bonjour

J'ai ecrit un programme pour venir lire dans un fichier ligne par ligne et de l'introduire dans un edit ,donc premiere ligne premier edit
deuxieme ligne deuxieme edit et troisieme ligne troisieme edit.
Le probleme c'est que mon programme ne vient que lire la premiere ligne et pas les suivantes et lorsque dans les edits sa inscrit la ligne il y a du texte suplementaire,je suis debutante en mfc donc j'ai un grand besion de votre aide
voici mon programme:

void CEcrire_editDlg::OnOK()
{
 // TODO: Add extra validation here
 
 // CDialog::OnOK();
 CFile f;
 CFileException e;
 char* pFileName = "C:\\Users\\sarah\\Desktop\\test1.txt";
 char pbuf [8];
 int i;
 if (f.Open(pFileName,CFile::modeRead,&e))
 {
  UpdateData (true);
  UINT nBytesRead = f.Read (pbuf,(sizeof(pbuf)));
  m_edit1 = pbuf;
  UpdateData (false);
  f.Close();
}
 
 
 
 if (f.Open (pFileName,CFile :: modeRead,&e))
 {
  UpdateData (true);
  UINT nBytesRead = f.Read (pbuf,(sizeof(pbuf)));
  m_edit2 = pbuf;
  UpdateData (false );
  f.Close ();
 }
 if (f.Open (pFileName,CFile :: modeRead,&e))
 {
  UpdateData (true);
  UINT nBytesRead = f.Read (pbuf,(sizeof (pbuf)));
  m_edit3 = pbuf;
  UpdateData (false);
  f.Close ();
 }
}

 Et voila ce que cela donne dans l'interface:

1er edit :Bonjours ØSA
2eme edit:BonjoursØSA, la je devrais avoir comment allez vous
3eme edit: BonjoursØSA, la moi ca va merci
ceci et a titre d'exemple puisque normalement je vais venir y mettre des codes defaut,le second probleme et ØSA je sais pas d'ou sa vient.

mardi 22 mai 2007 à 16:55:57 | Re : ecrire dans un edit a partir d'un fichier texte a lire ligne pa ligne

Loki6

Membre Club
tu as trois fois le même texte car tu fais trois fois la même chose...
à chaque fois que tu ouvres un livre, tu commences à la première page s'il n'y a pas de marque-page
ben là c'est pareil.
tu ouvres ton fichier tu lis une ligne et tu fermes. le coup d'après il fait pareil. et toujours avec la première ligne...

pour les signes kaballistiques il te manque certainement un code de fin de chaine '\0' quelquepart


Loki
mardi 22 mai 2007 à 17:00:14 | Re : ecrire dans un edit a partir d'un fichier texte a lire ligne pa ligne

sarah62223

c cool de me reondre mais sa ne m avance pas plus, si pourla fin de chaine mais le probleme c'est que je suis debutante en visual c++ mfc et c'est pas evident.
Merci quand meme
mardi 22 mai 2007 à 17:24:58 | Re : ecrire dans un edit a partir d'un fichier texte a lire ligne pa ligne

Loki6

Membre Club
je n'utilise pas cette classe (CFile) mais apparemment d'après la MSDN, la fonction membre Read() lit le fichier jusqu'à plus soif, autrement dit il lit nb caractères et les stocke dans buffer lorsque tu mets : f.Read(buffer,nb);
ca précise aussi que si nb est supérieur au nombre de caractères total, le retour de la fonction sera inférieur à nb.
p-e devrais tu :
1 - lire tout le fichier et séparer ensuite ligne par ligne en scannant la chaine (cf. '\n')
2 - ou alors lire caractère par caractère et t'arrêter lorsque tu trouves ce fameux caractère de fin de ligne, apparemment, à chaque lecture, la fonction repart de la dernière position atteinte.

dans le cas 1, tu peux ensuite faire f.Close();
pour le cas 2, surtout pas le faire, sinon tu perds ta position de curseur. Lorsque tu as fini de lire ton fichier alors tu peux le fermer.

est ce que ca t'aide un peu plus ?

Loki
mardi 22 mai 2007 à 20:08:14 | Re : ecrire dans un edit a partir d'un fichier texte a lire ligne pa ligne

BruNews

Administrateur CodeS-SourceS

Tu dois lire 3 fois 8 octets, bien ça ???

HANDLE hfl;
DWORD d;
char buf[28];
hfl = CreateFile("C:\\Users\\sarah\\Desktop\\test1.txt",
                 GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
if(hfl == INVALID_HANDLE_VALUE) return;
ReadFile(hfl, buf, 24, &d, 0)
CloseHandle(hfl);
buf[d] = 0;
if(d >= 16) ::SetWindowText(hed3, buf + 16);
if(d >= 8) {
  buf[16] = 0;
  ::SetWindowText(hed2, buf + 8);
}
if(d) {
  buf[8] = 0;
  ::SetWindowText(hed1, buf);
}

Devrait aller, à tester.
Aucune gestion d'exception, c'est très couteux en cycles.

ciao...
BruNews, MVP VC++



Cette discussion est classée dans : ligne, lire, edit, updatedata, pbuf


Répondre à ce message

Sujets en rapport avec ce message

Lire Un *.txt ! [ par erasor ] Bon voila,je veut lire un *.txt,juska la rien de bien difficile mais je veut lire une ligne seulement et une ligne differente a chake fois ke j'execut Ajout ligne Edit Box [ par Hades53 ] Salut,j'aimerais savoir s'il existe un fonction pour ajouter une ligne avec texte dans une edit box.Ya bien GetWindowText et SetWindowText mais ca bug lire une ligne aleatoirement [ par ocin2003 ] slt je cherche a aller à une certaine ligne d'un fichier texte pour lire la ligne j'ai mis des numero a chaque ligne , je vais a une ligne que je d lire dernieère ligne [ par Hades53 ] Voila je voudrais savoir comment faire pour lire la dernière ligne d'un fichier en utilisant fseek avec SEEK_ENDmerci Lire dans un fichier ligne par ligne [ par curator68 ] Voilà, j'ai un fichier sur mon disque, et j'aimerai lire le contenu ligne par ligne dans mon programme. J'utilise Visual C++ de Visual Studio 6.0 sp5. Lire un fichier Texte Ligne par ligne [ par Ricpperso ] Bonjour,bon je fai un pti proget je voudrai savoir comment on fais pour lire un fichier Texte ligne par ligne, avec si possible le Cfile.merci d'avanc Lire une ligne d'un fichier texte [ par CassusGreg ] Salut à tous,Est-ce-qu'il existe une fonction pour lire une ligne de texte (terminé par 0x0D 0x0A) dans un fichier?Je suis sous VC++ 6merci retour chariot???????(saut de ligne dans en edit)??? [ par asik38 ] j'ai un edit et à l'interieur je veux inserer 3 chaines de caractaires mais avec des saut de ligne!!!Merci!!! Lire dans un fichier [ par Psyc0s ] J'ai un fichier dans lequel je stock des log donc il n'a jamais le meme nombre de ligne. J'aurais besoin de mettre chacque ligne dans une variable(di EDIT BOX [ par Djoobstil ] Bonjour,J'aimerais récuperer le contenu d'une EditBox, ligne par ligne, comme la lecture d'un fichier. C'est possible ?En API W32 si possible sinon MF


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 8,190 sec (3)

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