IDE EVAL (CALCULER AVEC TRÉS PEU DE CODE)

Signaler
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Messages postés
178
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
30 novembre 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43562-ide-eval-calculer-avec-tres-peu-de-code

Messages postés
178
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
30 novembre 2011

Merci pour vos comentaires et pour la note

En fait, je me suis inspiré de la source publiée par Renfield dans
http://www.vbfrance.com/code.aspx?ID=39620

C'est dômage qu'on ne puisse pas en faire un executable avec cette DLL, d'ailleurs un peu trop lourde, mais j'en suis sûr qu'il existe un moyen d'utiliser d'autres libraries installés d'origine sur Windows puisque il faut quand même évaluer des expressios de math en php ou java,etc dans les web pages et autres pages de script

En attendant je vais faire un tour s/interpreteur de Renfield
Messages postés
1221
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

En dotnet ça existe, j'ai quelques liens :
www.codeproject.com/csharp/expressionevaluator.asp
www.codeproject.com/dotnet/eval3.asp
www.codeproject.com/useritems/ExpressionFramework.asp
Je ne crois pas en avoir en VB6.
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
vicosta, tu aurais pu faire ainsi :

Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long

Public mzEval As Variant

Public Function Eval(ByRef vsStatement As String) As Variant
Execute "mzEval = " & vsStatement
Eval = mzEval
End Function

Public Function Execute(ByRef vsStatement As String)
EbExecuteLine StrPtr(vsStatement), 0, 0, 0
End Function


ainsi, tu peux faire :
Execute "Msgbox ""Hello, World !"""
ou a = Eval("Resultat : " & 12*48)


ah oui, on est "un jour ou l'autre", j'ai posté mon interpreteur :
http://www.vbfrance.com/code.aspx?ID=43566
(ne gère pas toutes les fonctions etc, mais du coup, ben, pas besoin de dependance externe)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
me suis fait mon interpreteur perso, le Script Control fonctionnait, mais trop lent...
je pense que je vais le poster un jour ou l'autre...
Afficher les 12 commentaires