| Problème avec RemoveStringBetweenDelimiters. | |
|
|
Auteur | Message |
---|
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec RemoveStringBetweenDelimiters. Ven 29 Déc 2017 - 19:56 | |
| Bonsoir. @Klaus. Comme tu peux le constater dans l'exemple ci-dessous, cette fonction ne supprime que la 1ère occurrence entre les crochets. Merci de la suite. - Code:
-
dim te$, chaine99$, zz%, crochet_gauche$, crochet_droit$
dll_on "kgf"
crochet_gauche$="[" crochet_droit$="]"
chaine99$="Test [aa] [bb] test."
te$=string$(len(chaine99$)," ") zz%=dll_call4("RemoveStringBetweenDelimiters",adr(chaine99$),adr(crochet_gauche$),adr(crochet_droit$),adr(te$)) chaine99$=trim$(te$)
message "'"+chaine99$+"'" terminate | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec RemoveStringBetweenDelimiters. Ven 29 Déc 2017 - 20:58 | |
| C'est normal. Voici ce que dit la doc: - Citation :
- Cette fonction supprime une chaîne de caractères délimitée par deux délimiteurs qui sont des chaînes de caractères elles-même. Pour que la suppression soit possible, il faut que les deux délimiteurs soient présents dans la chaîne à modifier, et que le délimiteur de droite soit plus à droite que le délimiteur de gauche. Sinon, rien n'est fait.
et - Citation :
res% 0 si rien n'est remplacé n>0 = position de la suppression donc, tu fais ceci: - Code:
-
zz%=dll_call4("RemoveStringBetweenDelimiters",adr(chaine99$),adr(crochet_gauche$),adr(crochet_droit$),adr(te$)) chaine99$=trim$(te$) while zz%>0 zz%=dll_call4("RemoveStringBetweenDelimiters",adr(chaine99$),adr(crochet_gauche$),adr(crochet_droit$),adr(te$)) chaine99$=trim$(te$) end_while | |
|
| |
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec RemoveStringBetweenDelimiters. Sam 30 Déc 2017 - 7:40 | |
| Bonjour.
@Klaus.
Merci de la réponse rapide.
J'ai donc suivi tes conseils, et j'ai ajouté une boucle de test.
Mais j'avais pensé que tu aurais pû inclure cette boucle dans la fonction elle-même.
C'est comme tu le désires. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec RemoveStringBetweenDelimiters. Sam 30 Déc 2017 - 9:03 | |
| J'ai préféré ajouter une nouvelle fonction plutôt que de changer le fonctionnement d'une fonction existante. | |
|
| |
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec RemoveStringBetweenDelimiters. Sam 30 Déc 2017 - 16:02 | |
| Bonjour. @Klaus. Je rencontre un problème avec cette nouvelle fonction. En fait, le message ne s'affiche jamais. J'ai l'impression que la fonction provoque un blocage. Merci de ton aide. - Code:
-
dim te$, chaine99$, zz%, crochet_gauche$, crochet_droit$
dll_on "kgf"
crochet_gauche$="[" crochet_droit$="]"
chaine99$="Test [aa] [bb] test."
te$=string$(len(chaine99$)," ") zz%=dll_call4("ReplaceAllStringsBetweenDelimiters",adr(chaine99$),adr(crochet_gauche$),adr(crochet_droit$),adr(te$)) chaine99$=trim$(te$)
message "'"+chaine99$+"'" terminate | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec RemoveStringBetweenDelimiters. Sam 30 Déc 2017 - 17:31 | |
| Si tu essayais comme ceci (après avoir rechargé la DLL): - Code:
-
dim te$, chaine99$, zz%, crochet_gauche$, crochet_droit$, remplacement$
dll_on "kgf"
crochet_gauche$="[" crochet_droit$="]"
chaine99$="Test [aa] [bb] test."
te$=string$(500," ") remplacement$ = "Coucou" zz%=dll_call5("ReplaceAllStringsBetweenDelimiters",adr(chaine99$),adr(crochet_gauche$),adr(crochet_droit$),adr(remplacement$),adr(te$)) chaine99$=trim$(te$)
message "'"+chaine99$+"'" terminate J'avais oublié une ligne dans mon code source, et tu avais oublié un paramètre dans l'appel de la fonction. Mais comme ça, ça marchera très bien. | |
|
| |
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec RemoveStringBetweenDelimiters. Sam 30 Déc 2017 - 17:43 | |
| Bonjour. @Klaus. Désolé, mais le problème persiste avec le code suivant. - Code:
-
dim te$, chaine99$, zz%, crochet_gauche$, crochet_droit$, remplacement$
dll_on "kgf"
crochet_gauche$="[" crochet_droit$="]"
chaine99$="Test [aa] [bb] test."
te$=string$(len(chaine99$)," ") remplacement$ = "Coucou" zz%=dll_call5("ReplaceAllStringsBetweenDelimiters",adr(chaine99$),adr(crochet_gauche$),adr(crochet_droit$),adr(remplacement$),adr(te$)) chaine99$=trim$(te$)
message "'"+chaine99$+"'" terminate | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec RemoveStringBetweenDelimiters. Sam 30 Déc 2017 - 17:53 | |
| Pas su tout? As-tu rechargé la DLL comme le l'ai dit ? En plus, tu n'as pas appliqué le code que j'au envoyé. Dans ta version, tu ne réserves pas assez de place pour la variable en sortie. Regarde le vrai résultat, en chargeant la variable te$ correctement: | |
|
| |
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec RemoveStringBetweenDelimiters. Sam 30 Déc 2017 - 19:32 | |
| Bonsoir. @Klaus. J'ai bien rechargé la dll, et même redémarré le PC, au cas où. Mais rien n'y fait, le code bloque toujours à la ligne d'appel de la DLL. Pour info, j'ai la version 822 de KGF. - Code:
-
dim te$, chaine99$, zz%, crochet_gauche$, crochet_droit$, remplacement$
dll_on "kgf"
crochet_gauche$="[" crochet_droit$="]"
chaine99$="Test [aa] [bb] test."
te$=string$(255," ") remplacement$ = "Coucou" zz%=dll_call5("ReplaceAllStringsBetweenDelimiters",adr(chaine99$),adr(crochet_gauche$),adr(crochet_droit$),adr(remplacement$),adr(te$)) message zz% chaine99$=trim$(te$)
message "'"+chaine99$+"'" terminate | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec RemoveStringBetweenDelimiters. Sam 30 Déc 2017 - 23:48 | |
| Est-ce que la DLL extraite est bien celle du 30/12/2017 à 17h27 ?
A tout hasard, je remets la distribution, identique bien sûr, mais on ne sait jamais... Il suffit de recharger la DLL - je n'ai rien changé, vue qie ça marche ici... | |
|
| |
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Problème avec RemoveStringBetweenDelimiters. Dim 31 Déc 2017 - 0:16 | |
| Bonsoir à tous, Chez moi, c'est OK, j'ai bien les deux "Coucou". - Spoiler:
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec RemoveStringBetweenDelimiters. Dim 31 Déc 2017 - 1:05 | |
| | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Problème avec RemoveStringBetweenDelimiters. Dim 31 Déc 2017 - 10:39 | |
| Bonjour tous le monde ! Du coup j'ai fais le test aussi sur mon Windows 7.32. J'ai un premier message avec '0' puis ensuite le message comme Marc ! | |
|
| |
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec RemoveStringBetweenDelimiters. Dim 31 Déc 2017 - 10:58 | |
| Bonjour.
Eh bien, après un nouveau téléchargement de kgf.dll, tout fonctionne correctement maintenant. Je n'ai pas trouvé la raison du problème d'hier. | |
|
| |
Contenu sponsorisé
| Sujet: Re: Problème avec RemoveStringBetweenDelimiters. | |
| |
|
| |
| Problème avec RemoveStringBetweenDelimiters. | |
|