PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Extraction chaine
Extraction chaine
Iniciado por winntas4444, 08,ago. 2019 17:02 - 3 respuestas
Publicado el 08,agosto 2019 - 17:02
Bonjour a tous…

Je cherche a transformer le texte d'une requete directement par les bonnes variables exemple :

MoiMême="SELECT nvl(substr(DMT_GAU_FREE_TEXT_SHORT,1,1),' ') zone FROM {Base Societe}.DOC_DOCUMENT WHERE DMT_NUMBER = replace ('{FLASHBL}','BLST','CST')'{Badge1}'"

{Base Societe},{FLASHBL},{Badge1} puisse se transformer en valeur des variables. Comment puis je le faire ? Je ne souhaite pas utilisé le %1 %2 etc .. car je souhaite que cela reste dynamique pour les utilisateurs.

Une idée … D'avance Merci
Miembro registrado
1.640 mensajes
Publicado el 08,agosto 2019 - 17:31
Qu'entend tu par dynamique ?
Tu veux dire que les utilisateurs peuvent créer leur propres requetes et que donc on attendra pas que {Base Societe},{FLASHBL},{Badge1} comme parametres prossibles ?

En tout cas tu peux faire :
sRequete est une chaîne = "SELECT nvl(substr(DMT_GAU_FREE_TEXT_SHORT,1,1),' ') zone FROM {Base Societe}.DOC_DOCUMENT WHERE DMT_NUMBER = replace ('{FLASHBL}','BLST','CST')'{Badge1}'"
sRequete = Remplace(sRequete,"{Base Societe}",sBaseSociete)
sRequete = Remplace(sRequete,"{FLASHBL}",sFlashBL)
sRequete = Remplace(sRequete,"{Badge1}",sBadge1)
Publicado el 09,agosto 2019 - 08:50
Merci pour votre aide, mais j'ai 100 variables de type '{ABCDE} , donc faire un remplace .. c'est pas possible … Je souhaiterai savoir comment pourvoir lire cette chaine et en extraire les 'balises' de type {ABCDE} .. il me restera ensuite a les modifier par %1,%2 et récupérer leurs valeur dans un chaine construit…

D'avance merci.
Miembro registrado
1.640 mensajes
Publicado el 09,agosto 2019 - 10:39
Hello,

Ce n’était qu'un bout de code pour t'orienter a toi de l'adapter. C'est la tout le métier de développeur, comment mettre en œuvre ce dont j'ai besoin avec ce que j'ai.

gtaVariables est un tableau associatif de chaînes
gtaVariables['FLASHBL'] = "sMaVaraPourFLASHBL" // On ecrit en chaine le nom des variables pour utiliser l'indirection plus tard
gtaVariables['BLST'] = "sMaVaraPourBLST"
// etc.. on dresse le tableau associatif de toutes les variables possibles

POUR TOUT sNomVariable,sVariable de gtaVariables
sRequete = Remplace(sRequete,sVariable,{sNomVariable}) // on utilise l'indirection sur SnomVariable afin de récuperer son contenu
FIN
Mensaje modificado, 09,agosto 2019 - 10:41