PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Comment transformer une chaine en fonction
Comment transformer une chaine en fonction
Débuté par Yoann Mercier, 22 avr. 2005 20:07 - 4 réponses
Posté le 22 avril 2005 - 20:07
Bonjour a tous,

J'ai un probleme auquel je ne trouve pas de solution.

Mon but et d'essayer de transforer une chaine de caractere saisie dans un champ en formule mathematique.

par exemple je saisie dans mon champ de saisie: cos(x)
ensuite j'utilise la fonction remplacer pour transformer cos(x) en Cosinus(x)

Mais le probleme c'est que Cosinus(x) est toujours une chaine de caractere (que je passe en parametre a une de mes procedures) mais ensuite je ne peut donc pas l'utiliser en tant que fonction dans une de mes procedures.

Le but etant d'ensuite faire varier la resultat de la fonction Cosinus(x) pour en inserer les resultat dans une table.

Voila j'espere avoir été clair lors de l'explication de mon probleme :)

Merci
Posté le 23 avril 2005 - 00:52
Bonjour,

Tu as la fonction compile qui permet de passer un code source pour le compiler en direct...

en espérant t'avoir aidé
Marc
Posté le 23 avril 2005 - 09:26
bonjour,
si la fonction est choisie dans une liste définie tu peux gérer ça dans un
SELON
CAS "Cosinus"
CAS ...
AUTRES CAS
Erreur("Fonction inconnue")
FIN

si tu veux un truc plus ouvert tu peux utiliser Compile()

PROCEDURE CALCUL(MonCalcul)

sResult est une chaine
sMonCode est une chaine = "Renvoyer "+MonCalcul
sResultCompil est une chaine = Compile("ProcLocal",sMonCode)
SELON sResultCompil
CAS "" : sResult = ExécuteTraitement("ProcLocal",trtProcédure)
CAS "ERR" : sResult = "Compilation impossible." + RC + ErreurInfo()
AUTRES CAS : sResult = sResultCompil
FIN
Renvoyer sResult

l'avantage c que tu peux faire tout ce qu'on peux faire avec du code

dans ce cas il faut que MonCalcul corresponde à du code WD comme sous l'éditeur
Tapes Compile dans le guide tu auras accès à +sieurs exemples et notamment WD compilation dynamique qui introduit le traitement des erreurs.

bon dev
patrice
Posté le 23 avril 2005 - 11:47
regardez du coté de la compilation dynamique fonction WD9 [Compile()]

bon courage
J.MEDA

"Yoann Mercier" <y.mercier@laposte.net> a écrit dans le message de news:
426915aa$1@news.pcsoft.fr...

Bonjour a tous,

J'ai un probleme auquel je ne trouve pas de solution.

Mon but et d'essayer de transforer une chaine de caractere saisie dans un
champ en formule mathematique.

par exemple je saisie dans mon champ de saisie: cos(x)
ensuite j'utilise la fonction remplacer pour transformer cos(x) en
Cosinus(x)

Mais le probleme c'est que Cosinus(x) est toujours une chaine de caractere
(que je passe en parametre a une de mes procedures) mais ensuite je ne
peut donc pas l'utiliser en tant que fonction dans une de mes procedures.

Le but etant d'ensuite faire varier la resultat de la fonction Cosinus(x)
pour en inserer les resultat dans une table.

Voila j'espere avoir été clair lors de l'explication de mon probleme :)

Merci

Posté le 23 avril 2005 - 13:47
Bonjour,

Avez-vous testé avec la compilation dynamique ? ( Compile() )
Votre chaine de caractère sera alors compilée et exécutée.

En espérant vous avoir aiguillé.

Cordialement

PopCorn (www.wdforge.org)