Les expressions réguliére
Les expressions réguliére
Bonjour a tous,
voila je voudrais utilisé les regex pour faire quelque modif sur le texte qui se trouve dans editorgadget
Alors en faite j'ai une liste de mot que je vais mettre dans un tableau et je voudrais que si un de ces mot se trouve dans le gadget editor
EditorGadget(#champ ,10,40,WindowWidth(1)-20,WindowHeight(1)-50)
Sa change sa couleur !
C'est possible ça ?
voila je voudrais utilisé les regex pour faire quelque modif sur le texte qui se trouve dans editorgadget
Alors en faite j'ai une liste de mot que je vais mettre dans un tableau et je voudrais que si un de ces mot se trouve dans le gadget editor
EditorGadget(#champ ,10,40,WindowWidth(1)-20,WindowHeight(1)-50)
Sa change sa couleur !
C'est possible ça ?
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
C'est pas sûr.
Modifier un texte pour lui ajouter des balises de style (HTML+CSS) se fait assez bien, mais je ne suis pas sûr que les RegEx soient suffisamment puissantes sous PB: elles ne vont pas te renvoyer les informations sur les groupes trouvés ce qui te permettrez de sélectionner la partie de texte en question puis de lui appliquer le style avec les SendMessage_(...).
Par contre y'a un format spécial (ou langage) pour mettre ne forme du texte dans les TextArea. Essaye de creuser de ce côté.
Ou plus simplement il doit y avoir les Libs Scientilla ou d'autres sur PureArea.net ou même sur ce forum qui répondront peut-être à tes besoins. Tout dépend si c'était un challenge ou si tu cherches une fonctionnalité toute faire.
/Liå
Modifier un texte pour lui ajouter des balises de style (HTML+CSS) se fait assez bien, mais je ne suis pas sûr que les RegEx soient suffisamment puissantes sous PB: elles ne vont pas te renvoyer les informations sur les groupes trouvés ce qui te permettrez de sélectionner la partie de texte en question puis de lui appliquer le style avec les SendMessage_(...).
Par contre y'a un format spécial (ou langage) pour mettre ne forme du texte dans les TextArea. Essaye de creuser de ce côté.
Ou plus simplement il doit y avoir les Libs Scientilla ou d'autres sur PureArea.net ou même sur ce forum qui répondront peut-être à tes besoins. Tout dépend si c'était un challenge ou si tu cherches une fonctionnalité toute faire.
/Liå
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
Re: Les expressions réguliére
....
Dernière modification par Backup le mar. 19/août/2014 12:21, modifié 1 fois.
oui !lannoy a écrit :C'est super, tu a fait ça juste pour moi ?
pour info je dispose chez moi d'une collection impressionnante de bout de code glané ça et la !
il me suffit de copier-coller
la recherche du bout de code est le plus long
le codage de ceci en utilisant le visual designer m'a pris un petit quart d'heure , alors que j'etais encore dans mon lit

ma meuf c'est barré depuis longtemps


il suffit de lire le contenu de ton tableau , element par element (mot par mot)Mais ça me dit pas si on peut comparé un texte complet avec un tableau et pas un seul mot, enfin je vais regarder ton code et essayé de comprendre
et de soumettre ce mot a rechercher au prg !

si en purebasic se dit "IF" et lorsque tu veux verifier 2 conditionslannoy a écrit :Mais en faite je veut que si il ecrit dans la zone de texte
<?php
?>
c'est deux simbole se mette en bleu instantanément !
tu met 2 conditions
if texte$="<?php"
color on ; tu met ici le code qui color
if texte$="?>"
color off ; tu met ici le code qui ne colore pas
endif
endif
je pense que tu as tout ce qu'il te faut pour faire ton prg

pour le probleme que tu souligne c'est encore plus simple que le prg que je t'ai mis !!
a savoir pour passer l'editeur en mode RTF
il faut lui envoyer cette chaine$
"{\rtf1\ansi "
et a la fin de l'editeur la derniere chose a lui envoyer c'est
"}"
donc tout ce qui est entre ces 2 balises c'est du RTF !!

sachant cela :
c'est simple
1- tu parcours toute les lignes de l'editeur
2 - lorsque tu rencontre "<?php" tu insere une des balises de coloration RTF
( couleur_rouge$="\cf4 " ; couleur_noir$=" \cf0 " ; couleur_noir$="\cf9")
voir le tableau des couleurs inclues dans mon code (procedure a Olivier)
puis tu insere le text a colorer , et ensuite tu insere la balise de fin de coloration (" \cf0") puis tu insere ta balise php ("?>") et le reste tu text !
3- tu recolle le tout dans l"éditeur
tu poursuis Goto 1-
fini !
voila en mettant comme ça par ecris ce qu'il te faut faire, ça peux aider
en tout cas tu as tout les outils pour le faire
un bon en php ne devrai pas avoir de soucis avec si peu

Je pige rien a ça
{\rtf1\ansi
Je comprend vraiment pas ce que tu veut dire pour moi j'ai compris ça
Si je fait ça sa marche :
Sa va par exemple donné sa
<?php
echo'J'ai compris ?';
?>
{\rtf1\ansi
Je comprend vraiment pas ce que tu veut dire pour moi j'ai compris ça
Si je fait ça sa marche :
Code : Tout sélectionner
if champ$="<?php"
color on RGB(2, 24, 253)
if champ="?>"
color on RGB(2, 24, 253)
endif
endif
<?php
echo'J'ai compris ?';
?>
Ok c'est super, un peut comme les balise span et la posibilité d'utilisé RGB direct dans le html .
A je suis content je vais suivre ton conseil pour voir ça !
Et donc pour coloré <?php en bleu il me faut faire sa
If texte$="<?php"
SetGadgetText(#champ, "{\rtf1\ansi {\colortbl ;\red0\green0\blue255;} \cf1 <?php \cf0}")
EndIf
J'ai testé sa marche mais sa ecrit tout le temp en bleu ensuite, il y as pas une fonction str_replace ?? Pour construire un parser
J'ai tenté un truc, j'avais pas beaucoup d'espoire mais
Sa me donne une erreur des que je veut écrire dans le gadget .
A je suis content je vais suivre ton conseil pour voir ça !
Et donc pour coloré <?php en bleu il me faut faire sa
If texte$="<?php"
SetGadgetText(#champ, "{\rtf1\ansi {\colortbl ;\red0\green0\blue255;} \cf1 <?php \cf0}")
EndIf
J'ai testé sa marche mais sa ecrit tout le temp en bleu ensuite, il y as pas une fonction str_replace ?? Pour construire un parser
J'ai tenté un truc, j'avais pas beaucoup d'espoire mais
Code : Tout sélectionner
texte$ = GetGadgetText(#champ)
If texte$ <> ""
ReplaceRegularExpression(#champ, "<?php", "{\rtf1\ansi {\colortbl ;\red0\green0\blue255;} \cf1 <?php \cf0}")
SetGadgetText(#champ, texte$)
EndIf
Dernière modification par lannoy le dim. 12/juil./2009 13:49, modifié 1 fois.
Si je te suis, je suis sensée faire ça
Le blem est que sa marche pas :'
EDIT:
J'ai trouvé sa dans la doc
Debug ReplaceString("This is Art", " is", " was")
Ya pas moyen de faire un truc comme sa
Debug ReplaceString(texte$, " <?php", " {\rtf1\ansi {\colortbl ;\red0\green0\blue255;} \cf1 <?php \cf0 \colorb0}")
Parceque sa colore pas
Code : Tout sélectionner
If CreateRegularExpression(0, "<?php")
Result$ = ReplaceRegularExpression(0, "<?php", "{\rtf1\ansi {\colortbl ;\red0\green0\blue255;} \cf1 <?php \cf0 \colorb0}")
Debug Result$ ; Will print "--- ABc --- abc"
Else
Debug RegularExpressionError()
EndIf
EDIT:
J'ai trouvé sa dans la doc
Debug ReplaceString("This is Art", " is", " was")
Ya pas moyen de faire un truc comme sa
Debug ReplaceString(texte$, " <?php", " {\rtf1\ansi {\colortbl ;\red0\green0\blue255;} \cf1 <?php \cf0 \colorb0}")
Parceque sa colore pas