59 messaggi dal 06 aprile 2007
Avendo una textbox.text = "5+10*25" , cioè con una forumla immessa a runtime, c'è la possibilità di eseguirla direttamente , senza un'analisi per scoporazione dell'espressione ?

Per esempio:

dim a as integer = 0
a = il valore calcolato di textbox.text
47 messaggi dal 09 settembre 2008
Direttamente attraverso il framework 2.0 non é possibile, non esiste un metodo che nel framework 3.5 che ti può essere di aiuto.
Prima di tutto devi includere la reference a:
- Microsoft.JScript
- Microsoft.Vba

Successivamente implementi il codice:

            VsaEngine vsaEngine = VsaEngine.CreateEngine();

            string s = "5*120+20";

            object _obj = Eval.JScriptEvaluate(s, vsaEngine);
            double _dbl = System.Convert.ToDouble(_obj);

            string _res = _obj.ToString();


Può essere un punto di partenza.
Modificato da alberto.picca il 10 settembre 2008 14.44 -
438 messaggi dal 04 agosto 2002
Contributi
se invece vuoi procedere con il parsing della stringa quì c'è un articolo con esempio: http://www.visual-basic.it/articoli/dcStringEvaluator.htm

E se hai sottomano il libro di Balena Programmare Microsoft Visual Basic 2005 il capitolo dedicato alle regex contiene un esempio completo per valutare le espressioni. Il codice è molto chiaro, molto ben spiegato e facilmente ampliabile e personalizzabile. Io l'ho utilizzato in passato come base di lavoro e ti assicuro che funziona benissimo anche con espressioni complesse.

ciao,
v
Modificato da vladimiro il 10 settembre 2008 16.19 -
59 messaggi dal 06 aprile 2007
Grazie amici, mi avete dato delle idee su cui lavorare.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.