🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #7162

Re: wiskunde interpreter in vb

#7162
From: Rudi Breedenraedt
Date: Fri, 18 Oct 2002 12:12
56 lines
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-mail
References: <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