PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Remplacer dans une chaine l'occurrence sélectionnée par...
Remplacer dans une chaine l'occurrence sélectionnée par...
Started by patrick, Apr., 07 2006 1:00 PM - 2 replies
Posted on April, 07 2006 - 1:00 PM
Bonjour,

J'ai dans un champ de saisie multiligne le texte suivant :

"Le jouet représente chez l’enfant un outil quasi indispensable de plaisir et de développement.... Le jouet permet, chez l’enfant d’âge préscolaire, de développer grandement ses sens en éveil.... L’enfant de 2, 3 ans apprécie particulièrement le jouet lorsque celui-ci lui permet de faire de la répétition et de l’association."

Le mot jouet est présent 3 fois. Or, ce que je cherche à faire c'est si je sélectionne jouet en début de texte, je veux pouvoir modifier uniquement le premier mot jouet en lui ajoutant par exemple un balise html.

Par exemple je veux ajouter au premier mot jouet de ce texte la balise html <i>

J'ai donc créé un bouton Btn_i qui lance la procédure Ajout_Balise("i")


PROCEDURE Ajout_Balise(sBalise)

chSelect est une chaine
PosFin est un entier

SI Texte..FinCurseur > 0 ALORS
PosFin = Texte..FinCurseur - 1
SINON
PosFin = Texte..FinCurseur
FIN

//texte sélectionnée dans champ de saisie multiligne
chSelect = Texte[[Texte..Curseur A PosFin]]

//remplacement du texte
Texte = Remplace(Texte, chSelect, "<"+sBalise+">"+chSelect+"</"+sBalise+">")

Mais en faisant cela, je remplace toutes les occurrences "jouet" de mon texte. Or je veux remplacer uniquement l'occurrence "jouet" sélectionnée.

Comment faire.
D'avance merci.

Patrick
Posted on April, 07 2006 - 1:32 PM
Dans son message, patrick racontait :

Bonjour,

J'ai dans un champ de saisie multiligne le texte suivant :

"Le jouet représente chez l&#8217;enfant un outil quasi indispensable de plaisir et de développement.... Le jouet permet, chez l&#8217;enfant d&#8217;âge préscolaire, de développer grandement ses sens en éveil.... L&#8217;enfant de 2, 3 ans apprécie particulièrement le jouet lorsque celui-ci lui permet de faire de la répétition et de l&#8217;association."

Le mot jouet est présent 3 fois. Or, ce que je cherche à faire c'est si je sélectionne jouet en début de texte, je veux pouvoir modifier uniquement le premier mot jouet en lui ajoutant par exemple un balise html.

Par exemple je veux ajouter au premier mot jouet de ce texte la balise html <i>

J'ai donc créé un bouton Btn_i qui lance la procédure Ajout_Balise("i")


PROCEDURE Ajout_Balise(sBalise)

chSelect est une chaine
PosFin est un entier

SI Texte..FinCurseur > 0 ALORS
PosFin = Texte..FinCurseur - 1
SINON
PosFin = Texte..FinCurseur
FIN

//texte sélectionnée dans champ de saisie multiligne
chSelect = Texte[[Texte..Curseur A PosFin]]

//remplacement du texte
Texte = Remplace(Texte, chSelect, "<"+sBalise+">"+chSelect+"</"+sBalise+">")

Mais en faisant cela, je remplace toutes les occurrences "jouet" de mon texte. Or je veux remplacer uniquement l'occurrence "jouet" sélectionnée.

Comment faire.
D'avance merci.

Patrick


A priori ce que tu cherches pourrait ressembler a ca :

Texte = Texte[[0 a Texte..Curseur]]+"<"+sBalise+">"+chSelect+"</"+sBalise+">"+Texte[[PosFin a Texte..taille]]

Bon dev'
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)
Posted on April, 07 2006 - 10:56 PM
Merci Lionel pour ta réponse.
Ca marche...