Article View: be.comp.programming
Article #7162Re: wiskunde interpreter in vb
From: Rudi Breedenraedt
Date: Fri, 18 Oct 2002 12:12
Date: Fri, 18 Oct 2002 12:12
56 lines
2755 bytes
2755 bytes
Je kan ook gebruik maken van de Microsoft Script Control. Het voordeel is
dat het heel makkelijk te implementeren is (je moet eigenlijk niks meer
doen, alleen de control gebruiken) en veel krachtiger dan alleen een
"wiskundige interpreter" (je kunt er echt programma's mee laten uitvoeren,
objecten aan doorgeven, etc...).
Ga voor een eenvoudig voorbeeldje als volgt tewerk:
1. Maak een nieuw VB6 programma, op het formulier voeg je een textbox
(Text1) en een command button (Command1) toe.
2. In de VB IDE kies je het Project menu, de References optie en kruis je de
"Microsoft Script Control 1.0" aan (staat ie er niet tussen, kies dan Browse
en zoek naar een bestand msscript.ocx in je System32 folder).
3. Schrijf volgende code:
Private Sub Command1_Click()
Dim engine As New MSScriptControl.ScriptControl
On Error GoTo ErrorHandler
engine.Language = "VBScript"
engine.ExecuteStatement "a = 5"
engine.ExecuteStatement "b = 7"
engine.ExecuteStatement "c = 12"
MsgBox engine.Eval(Text1.Text)
Finally:
Exit Sub
ErrorHandler:
MsgBox "Error in expression : " & engine.Error.Description &
vbNewLine & _
"> " & engine.Error.Text, vbCritical
Resume Finally
End Sub
Klaar !!!
Je kunt het programma nu testen door in het tekstveldje bv. het volgende op
te nemen:
a + b
geeft 12 terug
a + b = c
geeft True terug
sin(a + b) * cos(c)
geeft -0.45... terug
2 * a + b
geeft 17 terug
2 * (a + b)
geeft 24 terug
�(�!�
geeft een foutmelding "Invalid character"
...
Succes
Rudi
Technical Details
Message-ID:
<3daffa2f$0$30451$afc38c87@sisyphus.news.be.easynet.net>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-05!sn-xit-01!sn-xit-04!supernews.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.online.be!feed1.news.be.easynet.net!sisyphus.news.be.easynet.net!not-for-mailReferences:
<3da98a33$0$215$ba620e4c@news.skynet.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,1db938acc2ed5e07 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-10-18 05:17:37 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-05!sn-xit-01!sn-xit-04!supernews.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.online.be!feed1.news.be.easynet.net!sisyphus.news.be.easynet.net!not-for-mail From: "Rudi Breedenraedt" <r.b@POBoxes.com> Newsgroups: be.comp.programming References: <3da98a33$0$215$ba620e4c@news.skynet.be> Subject: Re: wiskunde interpreter in vb Date: Fri, 18 Oct 2002 14:12:58 +0200 X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Lines: 59 Message-ID: <3daffa2f$0$30451$afc38c87@sisyphus.news.be.easynet.net> Organization: [ posted via Easynet Belgium ] NNTP-Posting-Host: 213.193.176.31 X-Trace: 1034943023 30451 213.193.176.31 X-Complaints-To: abuse@be.easynet.net