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
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 25 juil. 2007 à 16:06
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.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 juil. 2007 à 14:22
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)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 juil. 2007 à 13:48
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...
aeder
Messages postés14Date d'inscriptionvendredi 26 juin 2009StatutMembreDernière intervention30 mars 2008 25 juil. 2007 à 13:25
Autre alternative pour ceux qui ont Excel : utiliser la fonction "Evaluate". Il suffit d'ajouter la référence Excel au projet et "Evaluate" est immédiatement accessible.
2 contraintes :
1. Diffuser la bibliothèque Excel dans le déploiement
2. Le client final doit impérativement posséder une licence Excel
à noter : à la 1ère utilisation de la fonction, il y a un petit délai d'attente (chargement de la dll); après c'est très rapide.
J'utilise cette fonction car tous mes clients ont Excel. Sinon, comme Bouv, j'utilise une variable de compilation pour utiliser la variante Script. Mais celle d'Excel est plus intéressante.
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 25 juil. 2007 à 13:13
Une autre solution est d'utiliser le composant Microsoft Script Control 1.0 et ça fonctionne en compilé
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 juil. 2007 à 13:02
au temps pour moi,
# => double
! => single
cs_Kite37
Messages postés242Date d'inscriptionlundi 6 mars 2006StatutMembreDernière intervention17 janvier 2018 25 juil. 2007 à 12:31
dommage que cette méthode ne marche pas en compilé, cela m'aurait épargné bien des migraines pour ma version VB 2005 de calcul ..
Ah, et il me semble que le # est bien le signe des double non? en tout cas en VB 2005 c'est la cas..
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 24 juil. 2007 à 23:51
à noter que cette API n'est pas directement accessible dans un exe :
si tu compiles ton code, ton projet ne marcheras pas...
dans ton code, tu renvoies un Double
et tu ajoutes des # (marque des Single)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 24 juil. 2007 à 23:50
Comme tu l'as précisé, ne fonctionne pas en compilé...
tu devrais mettre ta var globale en Variant (a noter en Public et non en Global, ce mot clé n'étant qu'un reliquat d'une version precedente)
vicosta
Messages postés178Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention30 novembre 2011 24 juil. 2007 à 20:59
Mes excuses, c'est fait
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 juil. 2007 à 20:43
Manquerait bien quelque chose ...
- Un fichier ZIP ou un listing
- Un commentaire explicatif plus fourni (donne nous envie de charger ta source, dis-nous ce qu'elle sait faire ...)
25 juil. 2007 à 17:32
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
25 juil. 2007 à 16:06
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.
25 juil. 2007 à 14:22
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)
25 juil. 2007 à 13:48
je pense que je vais le poster un jour ou l'autre...
25 juil. 2007 à 13:25
2 contraintes :
1. Diffuser la bibliothèque Excel dans le déploiement
2. Le client final doit impérativement posséder une licence Excel
à noter : à la 1ère utilisation de la fonction, il y a un petit délai d'attente (chargement de la dll); après c'est très rapide.
J'utilise cette fonction car tous mes clients ont Excel. Sinon, comme Bouv, j'utilise une variable de compilation pour utiliser la variante Script. Mais celle d'Excel est plus intéressante.
25 juil. 2007 à 13:13
25 juil. 2007 à 13:02
# => double
! => single
25 juil. 2007 à 12:31
Ah, et il me semble que le # est bien le signe des double non? en tout cas en VB 2005 c'est la cas..
24 juil. 2007 à 23:51
si tu compiles ton code, ton projet ne marcheras pas...
dans ton code, tu renvoies un Double
et tu ajoutes des # (marque des Single)
24 juil. 2007 à 23:50
tu devrais mettre ta var globale en Variant (a noter en Public et non en Global, ce mot clé n'étant qu'un reliquat d'une version precedente)
24 juil. 2007 à 20:59
24 juil. 2007 à 20:43
- Un fichier ZIP ou un listing
- Un commentaire explicatif plus fourni (donne nous envie de charger ta source, dis-nous ce qu'elle sait faire ...)