Piccolo problema con Visual Basic 6

Brancaleone1
Ciao a tutti :)

Ho un problemino con Visual Basic 6.
Voglio inserire una formula (anche semplice, tipo x^4+1) in una Textbox "Txtformula": questa formula dovrebbe poi farmi questo giro

Private Function f(x) As Double
f = Txtformula.Text
End Function


ma la Function non me la riconosce ("Errore di run-time '13': Tipo non corrispondente"). Ho provato anche con
f = CDbl(Txtformula.Text) (non me la riconosce)
e con
f = Val(Txtformula.Text) (mi dà f = 0...)

Impostata così, la mia f dovrebbe essere percepita come un numero dipendente da un parametro x: ma allora perché CDbl e Val non funzionano?

Risposte
Summerwind78
purtroppo non funziona affatto cosí

la cosa é molto piú complessa

l'intera formula viene vista come una stringa e non come una formula dipendente da un paramtro


bisogna fare una complessa operazione di parsing che permetta al VB di trasformare la ció che tu scrivi sotto forma di testo in una formula

è da molto tempo che non mi capita di affrontare questo problema, é probabile ceh ci siano delle librerie di parsing giá fatte.

A mio tempo ne avevo fatta una in VB 6 ma é stata una lavoraccio

Brancaleone1
...purtroppo lo sospettavo...
Avevo trovato qualcosa qui

http://utenti.multimania.it/giuseppetalo/

ma sfortunatamente con quel metodo ottengo lo stesso errore :(

cujo.65
txtformula.text=f

Private Function f(x) As Double
f = (operazione matematica)
End Function

oppure txtformula = 'risultato operazione matematica'; oppure; oppure txtformula = CStr('risultato operazione matematica')

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.