EDIT BOX

Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005 - 15 mars 2004 à 18:51
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 17 mars 2004 à 00:42
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 MFC ira.

13 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 mars 2004 à 19:10
EM_GETLINE

ciao...
BruNews, Admin CS, MVP Visual C++
0
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
16 mars 2004 à 12:34
Merci bien
0
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
16 mars 2004 à 17:39
J'ai un probleme avec:
char *GetLine(HWND edit,int line)
{
char *i=new char[10];
int L=0;
L=SendMessage(edit,EM_LINELENGTH,line,0);
sprintf(i,"%d",L);
MessageBox(0,i,0,0);
if(!L)
return (char *)0;
char *LCHAR=new char[L];
SendMessage(edit,EM_GETLINE,line,(LPARAM)(LPSTR)LCHAR);
return (char *)LCHAR;
}
LCHAR ne me retourne rien, pourquoi ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 mars 2004 à 18:04
Faut lire MSDN sans quoi on ne peut rien faire.
y est dit pour EM_GETLINE:
- ne met pas de ZERO final.
quand tu appelles EM_GETLINE, verif du retour de SendMessage, il te servira pour inserer ce zero final.
EM_LINELENGTH idem ne compte pas le zero final.

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
16 mars 2004 à 18:06
Faut lire MSDN sans quoi on ne peut rien faire.
y est dit pour EM_GETLINE:
- ne met pas de ZERO final.
quand tu appelles EM_GETLINE, verif du retour de SendMessage, il te servira pour inserer ce zero final.
EM_LINELENGTH idem ne compte pas le zero final.
Tu vois ce que je veux dire ???

ciao...
BruNews, Admin CS, MVP Visual C++
0
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
16 mars 2004 à 18:29
J'ai lu MSDN, c'est là que j'y ai trouvé EM_LINELENGTH.
Sinon, quesque tu entends par zéro final ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 mars 2004 à 18:34
Une chaine 'C' DOIT avoir un zero final. Ton buffer est donc trop petit.

ciao...
BruNews, Admin CS, MVP Visual C++
0
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
16 mars 2004 à 18:51
J'ai essayé avec un buffer de 500, avec une ligne de 4 caractères.. mais toujours rien :/
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 mars 2004 à 19:00
Je fais un exemple des que possible.

ciao...
BruNews, Admin CS, MVP Visual C++
0
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
16 mars 2004 à 19:11
Ok merci.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 mars 2004 à 20:18
http://www.cppfrance.com/code.aspx?ID=21272

Je t'assure que c'est moins long a faire qu'a expliquer.

ciao...
BruNews, Admin CS, MVP Visual C++
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
17 mars 2004 à 00:37
Le truc sioux c'est quand même le paramètre à donner à EM_LINELENGTH. La logique voudrai qu'on lui refile le numéro de ligne et non pas l'indice d'un caractère de la ligne depuis le début de l'edit (je me souviens avoir pas mal galéré la dessus, surtout quand on lit la doc en diagonale et un peu trop vite...)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 mars 2004 à 00:42
Salut ymca2003,
tout cela vient du fait que le nombre de lignes peut varier suivant resize du edit a cause du word_break.
Enfin, c'est vrai que c'est pas evident de 1er abord.

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