title image


Smiley Code: Formeln auswerten
Hi !

So kannst Du Formeln auswerten:



Private Sub Form_Load()

Dim o As New ScriptControl

o.Language = "VBScript"

Debug.Print o.Eval("2+3")

End Sub





Du kannst auch Objekte aus Deinem Programm ansprechen:



Public gi as Integer



Private Sub Form_Load()

Dim o As New ScriptControl

o.Language = "VBScript"

o.AddObject "Form1", Me

o.ExecuteStatement "Form1.gi = 2+3"

Debug.Print gi

End Sub





Zum fehlerfreien Ausführen von Private Sub Form_Load()

Dim o As New ScriptControl

o.Language = "VBScript"

MsgBox (o.Eval("2+3*5"))

End Sub



braucht man noch einen Verweis auf das "Microsoft Script Control 1.0" aus der Datei "MSSCRIPT.OCX".

Dummerweise wird sie standardmäßig nicht mit installiert und schlummert im Verzeichnis "\Common\Tools\VB\script" auf der VB-CD.

In der dortigen readme.txt steht auch drin, welche Dateien man wohin kopieren und registrieren muß.



Um nun eine Formel á la "3*b+2*c+8" auszuwerten, mußt Du erstmal die Variablen der Formel gegen die VariablenWerte aus den Textboxen austauschen.

Das geht mit dem Replace-Befehl:

Formel=txtFormel.Text

Formel=Replace(Formel,"b",txtVariableB.Text)

Formel=Replace(Formel,"c",txtVariableC.Text)

Ergebnis=o.Eval(Formel)



Dabei ist zu beachten, daß Du möglichst Variablennamen nimmst, die den mathematischen Funktionsnamen, die Du evtl. verwenden willst, nicht ähnlich sind.

Sonst wird aus "a+tan(0.5)" "2+t2n(0.5)", wenn a=2 ist !!!



Damit müßtest Du klarkommen!

Viel Spaß damit!
MFG, EW-Andy.


vbBooks.de - VB-Bücher zum Schmökern und Links zu allen Tutorien und Tips&Tricks-Seiten.



geschrieben von


Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: