Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Limitation d'une zone de texte

4 réponses
Avatar
gloops
Bonjour tout le monde,

J'ai créé un formulaire avec deux zones de texte, lorsqu'on tape (ou
colle) un texte dans le premier, sa conversion dans un autre jeu de
caractères doit s'afficher dans le deuxième.

Eh bien dans cette deuxième zone de texte je peux taper plusieurs
lignes, en revanche si j'affecte par code un texte de plusieurs lignes,
seule la première est retenue.

Si on a plusieurs lignes à insérer, il faut le faire ligne par ligne par
un truc du style :

' Texte = conversion de Text1.Text
Text2.Text = Split(Texte, Chr$(13))(1)
For N = 2 to UBound(Split(Texte, Chr$(13))
Text2.Text = Text2.Text + vbCrLf + Split(Texte, Chr$(13))(N)
Next

Ce que je n'ai pas testé tel quel, en fait sur le moment je ne me suis
pas cassé la tête, j'ai rempli le contrôle caractère par caractère :
même principe, mais avec Mid$ au lieu de Split. A éviter pour gérer une
sortie d'autoroute, bien entendu.

Bon alors j'en viens à ma question : c'est normal c't'affaire, ou j'ai
oublié un truc, quelque part ?
J'ai bien sûr tout de suite vérifié si mon contrôle était multiligne,
mais à part ça ?
--
______________________________________________________________
niark.fr ... Vous avez déjà vu un nom de domaine pareil, vous ?
Complètement gloops, ce mec ...

4 réponses

Avatar
X
Bonjour,

Tu dis : "si j'affecte par code un texte de plusieurs lignes, seule la
première est retenue." (textBox)

Et en faisant ça:

text = "ligne 1" & vbcrlf
text1 = text1 & "ligne 2" & vbcrlf

Ça donne quoi ???
---------------------------





"gloops" a écrit dans le message de news:
43ac9570$0$21284$
| Bonjour tout le monde,
|
| J'ai créé un formulaire avec deux zones de texte, lorsqu'on tape (ou
| colle) un texte dans le premier, sa conversion dans un autre jeu de
| caractères doit s'afficher dans le deuxième.
|
| Eh bien dans cette deuxième zone de texte je peux taper plusieurs
| lignes, en revanche si j'affecte par code un texte de plusieurs lignes,
| seule la première est retenue.
|
| Si on a plusieurs lignes à insérer, il faut le faire ligne par ligne par
| un truc du style :
|
| ' Texte = conversion de Text1.Text
| Text2.Text = Split(Texte, Chr$(13))(1)
| For N = 2 to UBound(Split(Texte, Chr$(13))
| Text2.Text = Text2.Text + vbCrLf + Split(Texte, Chr$(13))(N)
| Next
|
| Ce que je n'ai pas testé tel quel, en fait sur le moment je ne me suis
| pas cassé la tête, j'ai rempli le contrôle caractère par caractère :
| même principe, mais avec Mid$ au lieu de Split. A éviter pour gérer une
| sortie d'autoroute, bien entendu.
|
| Bon alors j'en viens à ma question : c'est normal c't'affaire, ou j'ai
| oublié un truc, quelque part ?
| J'ai bien sûr tout de suite vérifié si mon contrôle était multiligne,
| mais à part ça ?
| --
| ______________________________________________________________
| niark.fr ... Vous avez déjà vu un nom de domaine pareil, vous ?
| Complètement gloops, ce mec ...
|
Avatar
Gloops
X a écrit, le 24/12/2005 08:15 :
text = "ligne 1" & vbcrlf
text1 = text1 & "ligne 2" & vbcrlf

Ça donne quoi ???
---------------------------
| Text2.Text = Text2.Text + vbCrLf + Split(Texte, Chr$(13))(N)



Comme je disais ça marche.
C'était en envoyant toute la sauce d'un coup que je n'avais qu'une ligne.

--
| ______________________________________________________________
| niark.fr ... Vous avez déjà vu un nom de domaine pareil, vous ?
| Complètement gloops, ce mec ...
|




Avatar
Gloops
Eurêka !

Ce n'est pas le contrôle de texte qui est en cause, mais le texte en
entrée : il contenait des caractères nuls !

On peut coller un texte contenant des caractères nuls et il apparaît
dans le contrôle, mais si on l'affecte par code l'insertion s'arrête au
premier caractère nul.

Il va donc simplement falloir que je retouche ma fonction de conversion,
qui s'est mélangé les pinceaux là où les lignes se terminaient par un
signe = pour indiquer une suite à la ligne suivante, et à cet endroit
insérait un caractère nul.
_____________________________________
gloops a écrit, le 24/12/2005 01:25 :

Bonjour tout le monde,

J'ai créé un formulaire avec deux zones de texte, lorsqu'on tape (ou
colle) un texte dans le premier, sa conversion dans un autre jeu de
caractères doit s'afficher dans le deuxième.

Eh bien dans cette deuxième zone de texte je peux taper plusieurs
lignes, en revanche si j'affecte par code un texte de plusieurs lignes,
seule la première est retenue.

Si on a plusieurs lignes à insérer, il faut le faire ligne par ligne par
un truc du style :

' Texte = conversion de Text1.Text
Text2.Text = Split(Texte, Chr$(13))(1)
For N = 2 to UBound(Split(Texte, Chr$(13))
Text2.Text = Text2.Text + vbCrLf + Split(Texte, Chr$(13))(N)
Next

Ce que je n'ai pas testé tel quel, en fait sur le moment je ne me suis
pas cassé la tête, j'ai rempli le contrôle caractère par caractère :
même principe, mais avec Mid$ au lieu de Split. A éviter pour gérer une
sortie d'autoroute, bien entendu.

Bon alors j'en viens à ma question : c'est normal c't'affaire, ou j'ai
oublié un truc, quelque part ?
J'ai bien sûr tout de suite vérifié si mon contrôle était multiligne,
mais à part ça ?


Avatar
Gloops
Gloops a écrit, le 24/12/2005 14:31 :
On peut coller un texte contenant des caractères nuls et il apparaît
dans le contrôle,



Avec quelques secondes de réflexion supplémentaires, ce n'est pas
exactement ça que j'ai fait, puisque c'est la conversion qui donnait des
caractères nuls.