Fichier txt => edit box

cs_Wiwi Messages postés 6 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 5 avril 2004 - 27 mars 2004 à 15:40
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 29 mars 2004 à 21:17
Salut tt le monde, bon voilà je vous explique.
Je veux afficher le contenu d'un fichier texte dans une edit box.

Le problème est que ce fichier contient plusieurs lignes. Donc j'ai mis l'edit box en "multiline", mais ça n'affiche que sur une seule ligne, alors que lorsque j'exécute mon programme avec un "main", les "cout" et tout le tralala, les sauts de ligne sont pris en compte dans la fenêtre MS DOS.

J'ai aussi essayé avec fcsanf, mais sans succès.
Alors si quelqu'un a une idée...
Merci.

char buf_fichier[64];
char*  msg;

Fichier=fopen(.test.txt,"r");
fread ( buf_fichier , sizeof ( buf_fichier ) , 1 , Fichier );
msg=buf_fichier;


Et j'envoie le tout dans l'edit box.

//CString	m_message;
m_message = m_serveur.msg; 

5 réponses

crocejf2000 Messages postés 260 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 27 août 2008 1
27 mars 2004 à 18:02
Salut,

Je pense que ca vient des fin de ligne, il faut que tu ai "\r\n" en fin de ligne il me semble, en tout ca ca doit surement venir de la.
A+,Hart
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 mars 2004 à 18:11
Le fichier txt doit deja avoir ses sauts de ligne, rien a inserer.
C'est ce code mystique qu'il faut changer.

DWORD d;
char *pmem;
hfl = CreateFile(....);
len = GetFileSize(hfl, 0);
pmem = (char*) HeapAlloc(..., len+1);
ReadFile(hfl, pmem, len, &d, 0);
CloseHandle(hfl);
pmem[len] = 0;
SetWindowText(hedit, pmem);

ciao...
BruNews, Admin CS, MVP Visual C++
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
29 mars 2004 à 20:23
'lu

ma soluce est similaire à celle de crocejf2000 ,

BruNews, ta soluce me parrais un peu bas niveau et tu es spécialiste mais comme tu dis, mystique...

Bref, ma classe BString implémente une méthode nommée winformat qui permet de remplacer automatiquement tous les saut de lignes classiques en saut de ligne a la sauce windows (& vice versa)

Et Je l'utilise fréquement pour les l'edit box en "multiline".

Voilà,

BruNews, si ta soluce est meilleur, pourrais tu l'expliciter STP
(pourquoi le handle, pq créer un nv fichier...)

@+
Magic Nono: l'informagicien!
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 mars 2004 à 20:28
CreateFile ne 'cree' pas de nouveau fichier, il cree, ouvre c'est selon les params. Sert egalement a ouvrir un port com, c'est le point d'entree de kernel32 qui permet a peu pres tout.
Vois que par 'mystique', j'entendais par la ce que je voyais plus haut. Quand je vois ecrit edit box on comprend que c'est pour win32, alors devrait impliquer prog win32 sans autre couche d'interpretation au milieu.

ciao...
BruNews, Admin CS, MVP Visual C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 mars 2004 à 21:17
Voila j'ai fait la demo complete, plus qu'a copier coller.
http://www.cppfrance.com/code.aspx?ID=21564

ciao...
BruNews, Admin CS, MVP Visual C++
0
Rejoignez-nous