PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Calculer valeur d'une chaine du type "14.5 + 45"
Calculer valeur d'une chaine du type "14.5 + 45"
Started by informatique, Aug., 30 2004 11:56 AM - 5 replies
Posted on August, 30 2004 - 11:56 AM
j'aurais besoin de convertir "14.5 + 45" afin d'obtenir 59.5

tout comme je dois obtenir 690 de la chaine "(14 + 9) * 30"

dommage que val() ne puisse pas gérer ça, comment puis-je faire?
Posted on August, 30 2004 - 10:28 AM
Salut


On 31-Aug-2004, "Kevin B." <informatique@larche-lamerci.com> wrote:

j'aurais besoin de convertir "14.5 + 45" afin d'obtenir 59.5

tout comme je dois obtenir 690 de la chaine "(14 + 9) * 30"

dommage que val() ne puisse pas gérer ça, comment puis-je faire?


utilise Copile() ...

Bien à toi !

--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477
Posted on August, 30 2004 - 12:25 PM
Tu peux utiliser la compilation dynamique

nResultat est entier
cEvaluation est chaine
cEvaluation = "14.5 + 45"
si Compile("Calcul","Renvoyer("+cEvaluation+")") ~= "" alors
nResultat = Calcul()
fin

Bon Dev

"Kevin B." <informatique@larche-lamerci.com> wrote:


j'aurais besoin de convertir "14.5 + 45" afin d'obtenir 59.5

tout comme je dois obtenir 690 de la chaine "(14 + 9) * 30"

dommage que val() ne puisse pas gérer ça, comment puis-je faire?
Posted on August, 30 2004 - 12:36 PM
Utilisez la compilation dynamique :p

ChCalcul est une chaîne = "(14 + 9) * 30"
vResultat est un Variant
sResultatCompile est une chaîne

sResultatCompile = Compile("CalculDynamique", " renvoyer "+ChCalcul)
SI sResultatCompile = "" ALORS
vResultat = ExécuteTraitement("CalculDynamique",trtProcédure)
Info(ChCalcul+" = "+vResultat)
FIN




Kevin B. wrote:

j'aurais besoin de convertir "14.5 + 45" afin d'obtenir 59.5

tout comme je dois obtenir 690 de la chaine "(14 + 9) * 30"

dommage que val() ne puisse pas gérer ça, comment puis-je faire?
Posted on August, 30 2004 - 1:45 PM
impressionnant
merci à tous ;)

vais me documenter sur la compilation dynamique
Posted on September, 03 2004 - 12:58 PM
Bonjour,

Tu peux également utiliser une ardoise magique.

Exemple :

L'ardoise magique se compose de :

- une zone de saisie du code à tester baptisée Code_à_tester
- une zone de réception du résultat baptisée Description_de_l_erreur parce
qu'elle est supposée afficher les erreurs en phase de mise au point.
- un ou plusieurs boutons contenant du code répétitif à paramétrer. C'est
dans le bouton Réplica que se toruve le code suivant :

Code_à_tester += "Mon_chemin2 est une chaîne = " + Caract(34) + "\\ZEUS\Efco_Dossiers_Clients\Fichiers"
+ Caract(34) + CR
Code_à_tester += "Mon_chemin1 est une chaine = " + Caract(34) + "c:\Fichiers_10082004"
+ Caract(34) + CR
Code_à_tester += "HChangeRep(" + Caract(34) + "*" + Caract(34) + ", Mon_chemin1)"
+ CR
Code_à_tester += "HLitPremier(Mon_fichier,Ma_clé_composée)" + CR
Code_à_tester += "informations" + CR
Code_à_tester += "Entrée_sur_l_écran" + CR
Code_à_tester += "Menu..Libellé = " + Caract(34) + "Répertoire de travail
en cours : " + Caract(34) + " + Mon_chemin1" + CR
Code_à_tester += "Description_de_l_erreur = " + Caract(34) + "OK, " + Caract(34)
+ " + ma_clé_composée" + CR

En cliquant sur le bouton Réplica, le code suivant s'affiche, et il fonctionne
:


Mon_chemin2 est une chaîne = "\\ZEUS\Efco_Dossiers_Clients\Fichiers"
Mon_chemin1 est une chaine = "c:\Fichiers_10082004"
HChangeRep("*", Mon_chemin1)
HLitPremier(Mon_fichier,Ma_clé_composée)
informations
Entrée_sur_l_écran
Menu..Libellé = "Répertoire de travail en cours : " + Mon_chemin1
Description_de_l_erreur = "OK, " + ma_clé_composée

On observe que le code Caract(34) doit simplement positionner avec soin les
guillemets.

Les applications sont presque illimitées,

Bien cordialement,

Jacques De Schryver








"Marc Aroniz" <Marc_Aroniz@hotmail.com> wrote:


Tu peux utiliser la compilation dynamique

nResultat est entier
cEvaluation est chaine
cEvaluation = "14.5 + 45"
si Compile("Calcul","Renvoyer("+cEvaluation+")") ~= "" alors
nResultat = Calcul()
fin

Bon Dev

"Kevin B." <informatique@larche-lamerci.com> wrote:


j'aurais besoin de convertir "14.5 + 45" afin d'obtenir 59.5

tout comme je dois obtenir 690 de la chaine "(14 + 9) * 30"

dommage que val() ne puisse pas gérer ça, comment puis-je faire?