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 |
|
|
| Problème avec la commande RemoveStringBetweenDelimiters. | |
| | Auteur | Message |
---|
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec la commande RemoveStringBetweenDelimiters. Sam 10 Déc 2016 - 20:18 | |
| Bonjour. Je rencontre un problème avec cette fonction, dans le cas où la sous-chaîne à éliminer se trouve à l'intérieur d'un ensemble de sous-chaînes semblables. Un exemple de code où la difficulté apparaît Merci de la suite Klaus. - Code:
-
dll_on "kgf"
dim a$, b$, temporaire$, res%,parenthese_gauche$,parenthese_droite$
a$="chat (ms (général)) = cat"
parenthese_gauche$="(" parenthese_droite$=")"
temporaire$=string$(len(a$)," ") res%=dll_call4("RemoveStringBetweenDelimiters",adr(a$),adr(parenthese_gauche$),adr(parenthese_droite$),adr(temporaire$)) b$=trim$(temporaire$)
message b$ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec la commande RemoveStringBetweenDelimiters. Sam 10 Déc 2016 - 21:02 | |
| Tu ne dis pas ce que tu veux obtenir...La fonction fait exactement ce que tu lui demandes: éliminer tout de la première parenthèse ouvrante jusqu'à la première parenthèse fermante, parenthèses comprises. Est-ce que tu veux obtenir ceci: - Code:
-
dll_on "kgf"
dim a$, b$, temporaire$, res%,parenthese_gauche$,parenthese_droite$
a$="chat (ms (général)) = cat"
parenthese_gauche$=" (" parenthese_droite$=") "
temporaire$=string$(len(a$)," ") res%=dll_call4("RemoveStringBetweenDelimiters",adr(a$),adr(parenthese_gauche$),adr(parenthese_droite$),adr(temporaire$)) b$=trim$(temporaire$)
message b$ Tu sais que les délimiteurs sont des chaînes pouvant être même assez longues, pas uniquement un seul caractère. | |
| | | Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème. Sam 10 Déc 2016 - 21:13 | |
| Bonsoir.
Merci Klaus d'avoir regardé.
Si tu testes le code indiqué, tu verras qu'il reste une parenthèse après traitement. Le problème se pose chaque fois qu'une sous-chaîne à éliminer se trouve à l'intérieur d'une même sous-chaîne.
Merci de la suite. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec la commande RemoveStringBetweenDelimiters. Sam 10 Déc 2016 - 21:18 | |
| Justement... Ce que j'ai posté ci-dessus, élimine ce problème. Tu as comme résultat: chat= cat Ce n'est pas ce que tu veux ? | |
| | | Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: KGF. Dim 11 Déc 2016 - 7:50 | |
| Bonjour. Encore merci Klaus, c'est presque ce que je souhaitais. J'ai dû cependant ajouter un espace devant le signe '=', car j'en ai besoin pour les traitements futurs, comme suit. - Code:
-
dll_on "kgf"
dim a$, b$, temporaire$, res%,parenthese_gauche$,parenthese_droite$,zz98%
a$="chat (ms(général)) = cat"
parenthese_gauche$=" (" parenthese_droite$=") "
temporaire$=string$(len(a$)," ") res%=dll_call4("RemoveStringBetweenDelimiters",adr(a$),adr(parenthese_gauche$),adr(parenthese_droite$),adr(temporaire$))
zz98%=instr(temporaire$,"=") if zz98%>0 if mid$(temporaire$,zz98%-1,1)<>" " then temporaire$=left$(temporaire$,zz98%-1)+" "+right_pos$(temporaire$,zz98%) end_if
b$=trim$(temporaire$)
message b$ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec la commande RemoveStringBetweenDelimiters. Dim 11 Déc 2016 - 9:55 | |
| Alors, télécharge la nouvelle version 7.13 et essaie ceci: - Code:
-
dll_on "kgf"
dim a$, b$, temporaire$, res%,parenthese_gauche$,parenthese_droite$ dim remplacement$
a$="chat (ms (général)) = cat"
parenthese_gauche$=" (" parenthese_droite$=") "
temporaire$=string$(len(a$)," ") res%=dll_call4("RemoveStringBetweenDelimiters",adr(a$),adr(parenthese_gauche$),adr(parenthese_droite$),adr(temporaire$)) b$=trim$(temporaire$) message "RemoveStringBetweenDelimiters: "+b$
a$="chat (ms (général)) = cat"
parenthese_gauche$=" (" parenthese_droite$=") " remplacement$ = " "
temporaire$=string$(len(a$)," ") res%=dll_call5("ReplaceStringBetweenDelimiters",adr(a$),adr(parenthese_gauche$),adr(parenthese_droite$),adr(remplacement$),adr(temporaire$)) b$=trim$(temporaire$) message "ReplaceStringBetweenDelimiters: "+b$
| |
| | | Contenu sponsorisé
| Sujet: Re: Problème avec la commande RemoveStringBetweenDelimiters. | |
| |
| | | | Problème avec la commande RemoveStringBetweenDelimiters. | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |