Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| REPLACE ne fonctionne plus ?[RESOLU] | |
| | Auteur | Message |
---|
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: REPLACE ne fonctionne plus ?[RESOLU] Mar 5 Mar 2019 - 19:42 | |
| Cette commande n'a plus d'effet, vous observez la même chose ? Voici le code posté par jack: - Code:
-
SYNEDIT 1:' création d'un objet SYNEDIT FULL_SPACE 1 FONT_SIZE 1,10:' le code est en taille 10
' FILE_LOAD 1,"source.txt":' on charge un source item_add 1,"print" item_add 1,"rem" item_add 1,"PRINT" item_add 1,"print"
SYNEDIT_TARGET_IS_KEYWORD FONT_COLOR 1,255,0,0:' les mots-clés sont colorés en rouge (ils étaient en bleu) FONT_BOLD 1:' les mots-clés sont en style gras
SYNEDIT_TARGET_IS_GUTTER FONT_SIZE 1,14:' les numéros de ligne sont en taille 14 FONT_ITALIC 1:' les numéros de ligne sont en italique FONT_COLOR 1,255,0,0:' les numéros de ligne sont colorés en rouge (ils étaient olive)
SYNEDIT_TARGET_IS_COMMENT FONT_COLOR 1,0,255,0:' les commentaires sont colorés en vert (ils étaient en rose) FONT_UNDERLINE 1:' les commentaires sont soulignés
SYNEDIT_TARGET_IS_STRING FONT_COLOR 1,0,0,255:' les chaines de caractères sont colorés en bleu (elles étaient en gris) FONT_ITALIC 1:' les chaines de caractères sont soulignées
DIM P WHILE P<>-1:P=REPLACE("print","imprime",1,P):END_WHILE ' tous les "print" sont remplacés par "imprime"
EDIT : D'après mes tests, ce pb est apparu à la version 0928i19...
Dernière édition par silverman le Mer 6 Mar 2019 - 16:35, édité 1 fois | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Mer 6 Mar 2019 - 14:36 | |
| Je ne peux guère te répondre car je n'ai encore jamais utilisé ce REPLACE() mais j'ai essayé une modification simple de ton programme pour essayer de comprendre et de tester, et il semble que le REPLACE() puisse marcher dans certaines conditions. - Code:
-
dim a$ a$="Ceci est une chaîne" SYNEDIT 1:' création d'un objet SYNEDIT FULL_SPACE 1 FONT_SIZE 1,10:' le code est en taille 10
' FILE_LOAD 1,"source.txt":' on charge un source item_add 1,"print" item_add 1,"rem ' Voilà" item_add 1,"PRINT" item_add 1,"print" item_add 1,a$ pause 800 SYNEDIT_TARGET_IS_KEYWORD FONT_COLOR 1,255,0,0:' les mots-clés sont colorés en rouge (ils étaient en bleu) FONT_BOLD 1:' les mots-clés sont en style gras pause 800 SYNEDIT_TARGET_IS_GUTTER FONT_SIZE 1,14:' les numéros de ligne sont en taille 14 FONT_ITALIC 1:' les numéros de ligne sont en italique FONT_COLOR 1,255,0,0:' les numéros de ligne sont colorés en rouge (ils étaient olive) pause 800 SYNEDIT_TARGET_IS_COMMENT FONT_COLOR 1,0,255,0:' les commentaires sont colorés en vert (ils étaient en rose) FONT_UNDERLINE 1:' les commentaires sont soulignés pause 800 SYNEDIT_TARGET_IS_STRING FONT_COLOR 1,0,0,255:' les chaines de caractères sont colorés en bleu (elles étaient en gris) FONT_ITALIC 1:' les chaines de caractères sont soulignées pause 800 DIM P WHILE P<>-1:P=REPLACE("print","imprime",1,P):END_WHILE ' tous les "print" sont remplacés par "imprime" p=replace("print","imprime",1,1)
Peut-être est-ce la formule avec le calcul du P ou alors avec le while ? D'autres que moi pourront sans doute en dire plus... | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: REPLACE ne fonctionne plus ?[RESOLU] Mer 6 Mar 2019 - 16:35 | |
| Bravo jjn4, tu m'as mis sur la voie, j'ai trouvé ! La commande a dû subir une modification et maintenant il faut faire: - Code:
-
WHILE P<>-1:P=REPLACE("print","imprime",1,P+1):END_WHILE à la place de: - Code:
-
WHILE P<>-1:P=REPLACE("print","imprime",1,P):END_WHILE | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: REPLACE ne fonctionne plus ?[RESOLU] Jeu 7 Mar 2019 - 11:14 | |
| Effectivement, la fonction REPLACE a changé à partir de la version 0.9.28i19 et elle ne fait rien quand la position est inférieure à 1, ce qui est le cas dans l'exemple car elle est appelée avec une position nulle (inférieure à 1). Ce fonctionnement est normal, car dans une chaîne de caractères, la position du premier caractère vaut 1 et un appel de REPLACE avec la position 0 n'a pas de sens. Le problème c'est que je n'ai pas mis de message d'erreur dans cette fonction lorsqu'elle est appelée avec le paramètre de position inférieur à 1. J'ai toujours estimé qu'il devait y avoir une tolérance dans l'appel des fonctions, car ceci évite de faire des tests avant l'appel. Dans la prochaine version, j'indiquerai dans la documentation qu'elle est inactive quand elle est appelée avec une position inférieure à 1. Pour le moment, il suffit de rajouter la ligne P=1 pour que cela fonctionne "comme avant": - Code:
-
DIM P P=1 WHILE P<>-1:P=REPLACE("print","imprime",1,P):END_WHILE _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | Contenu sponsorisé
| Sujet: Re: REPLACE ne fonctionne plus ?[RESOLU] | |
| |
| | | | REPLACE ne fonctionne plus ?[RESOLU] | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |