Evaluation d'expression - fonction eval avec gestion de variables

Description

Bonjour à tous,

Je postes ici une source que j'ai développé pour un outil, au boulot. L'outil en question utilisait le contrôle "Microsoft Script Control"
- assignation multiples de variables
- evaluation d'expression logiques/numériques
bref, rien de bien complexe (pas de fonction, etc)

seulement, les multiples appels que je faisaient au controle Script ralentissaient énormément mon application. Je suppose que le controle Script a besoin de s'initialiser, de charger tout un tas de choses diverses et variées à chaque appel : on n'est surement pas supposé faire plein d'appels, mais de grouper ceux-ci...

Bref, j'ai décidé de coder un petit interpreteur de code, pour comparer les performances obtenues.

Succès, mon interpreteur a apporter un gain très sensible de vitesse, et je n'ai eu que très peu a modifier mon outil pour changer d'interpreteur.

je mets ce dernier a disposition aujourd'hui.

ne gère pas les racines, etc.

gère +-/^* And Or & = <> > < les parenthèses, la priorité des opérations, et il est également possible d'utiliser des variables.

Source / Exemple :


Private moScript As CTinyScript

Private Sub CcBtnExecute_Click()
    moScript.Execute CcTxtLive.Text
End Sub

'------------------------------

For i = 0 To moScript.VarCount - 1
    CcLstVars.AddItem moScript.VarName(i) & " = """ & moScript.VarValue(i) & """"
Next i

Conclusion :


quelques fonctions sont dispo
Left/Right/Mid avec un comportement particulier face aux valeurs négatives :
Left("Oscar",-2) => "Osc" (longeur-2)
Right("Oscar",-2) => "car" (longeur-2)
Mid("Australie",-5) => "ralie" (longeur-5)
Mid("Australie",-5,3) => "ral" (longeur-5)

Cos
Sin
Exp
Len
Format
StrReverse
IIf
Date
Now

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.