Ecrire dans un edit a partir d'un fichier texte a lire ligne pa ligne
cs_sarah62223
Messages postés7Date d'inscriptionjeudi 10 mai 2007StatutMembreDernière intervention 5 juin 2007
-
22 mai 2007 à 16:46
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
22 mai 2007 à 20:08
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
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.
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 22 mai 2007 à 16:55
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
cs_sarah62223
Messages postés7Date d'inscriptionjeudi 10 mai 2007StatutMembreDernière intervention 5 juin 2007 22 mai 2007 à 17:00
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
Loki6
Messages postés286Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention27 décembre 20092 22 mai 2007 à 17:24
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.