FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Compilateur FBPano
par jean_debord Aujourd'hui à 11:07

» Documentation de KGF
par Klaus Hier à 22:52

» Zoom sur une portion d'écran
par JL35 Hier à 21:51

» KGF_dll - nouvelles versions
par Klaus Hier à 21:31

» double guillemets "" dans un EDIT
par pascal10000 Hier à 21:08

» Recherche d'une expression dans un source
par Marc 37 Hier à 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 17 Nov 2017 - 11:49

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

» Bizzarerie dans Edge
par Marc 37 Mer 15 Nov 2017 - 17:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 Problème avec la commande RemoveStringBetweenDelimiters.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Pedro Alvarez

avatar

Nombre de messages : 862
Date d'inscription : 19/01/2014

MessageSujet: Problème avec la commande RemoveStringBetweenDelimiters.   Sam 10 Déc 2016 - 22: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$
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10126
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Problème avec la commande RemoveStringBetweenDelimiters.   Sam 10 Déc 2016 - 23: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

Nombre de messages : 862
Date d'inscription : 19/01/2014

MessageSujet: Problème.   Sam 10 Déc 2016 - 23: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10126
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Problème avec la commande RemoveStringBetweenDelimiters.   Sam 10 Déc 2016 - 23: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 ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

Nombre de messages : 862
Date d'inscription : 19/01/2014

MessageSujet: KGF.   Dim 11 Déc 2016 - 9: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$
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10126
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Problème avec la commande RemoveStringBetweenDelimiters.   Dim 11 Déc 2016 - 11: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$

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Problème avec la commande RemoveStringBetweenDelimiters.   

Revenir en haut Aller en bas
 
Problème avec la commande RemoveStringBetweenDelimiters.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: