Newsgroup: it.comp.lang.visual-basic
Titolo: Stringa -> Numero

Problema assolutamente cretino ma finora insormontabile. Come posso in
Visual Basic convertire, ad esempio, la stringa "2+3" nel numero 5? In
pratica, se scrivo un'espressione numerica in un controllo TextBox, come ne
posso calcolare il risultato? Naturalmente la funzione Val("2+3") non va
bene perché fornisce il risultato 2. Grazie a chi mi vorrà rispondere.

> Problema assolutamente cretino ma finora insormontabile.
Per me il problema non e' assolutamente cretino! :)
Io risolverei cosi':
controlli nella stringa quali e quanti operatori sono presenti, e di
conseguenza "traduci" i simboli nella stringa in opportune operazioni...
Ovviamente la tua stringa non ha un campo ben definito, quindi l'utente
potrebbe immettere qualsiasi cosa, per cui devi prevedere anche un'opportuna
gestione degli errori.
Se e' prevista la possibilita' di fare piu' operazioni dovrai anche
considerare la presenza di eventuali parentesi, tenendo presente che 1+2*3
e' diverso da (1+2)*3 in VB, per cui dovrai crearti regole analoghe per il
tuo text box (o regole diverse, secondo la logica del tuo programma!!)...
Usa le funzioni InStr() (o InStrRev() ) per trovare gli operatori nel text
box, e poi... in bocca al lupo! :)
- SonicBoom -
PS Come sempre, mi auguro di non aver detto qualche idiozia! :) In caso
affermativo chiedo _pieta'_ all'intero NG! :) Non sparate sul pianista
(cioe' sul sottoscritto!)!!

 posso calcolare il risultato?
Tre possibilità:
1) difficile: ti scrivi un "parser" che analizzi la stringa contenuta
    nella textbox, distinguendo per esempio valori e operatori,
    e calcoli il risultato.
2) facile: vai sul Sito Comune (indirizzo nella firma) e cerchi
    "eval", che è una cosa fatta apposta per questo :-)))
3) medio: vai sul sito Microsoft, cerchi Scripting Control,
    lo installi e usi la _sua_ funzione Eval. Pork, stavo per darti
    il link italiano, ma l'hanno cambiato un'altra volta, usa questo:
 
http://www.microsoft.com/italy/scripting/
 e cerca
    "Controllo Windows Script".
Se le tue necessità sono abbastanza semplici, direi che il metodo
numero 2 è il migliore. Se le funzioni sono complesse, usa il 3.
Bye, G.
--
Le risposte alle tue domande sono sul Sito Comune
di questo NewsGroup: 
http://it-lang-vb.net/
... e nell'help in linea !

> Tre possibilità:
Ho consigliato la difficile! :) Era un test per i programmatori? A che
gruppo appartengo? :)
Ciao
- SonicBoom -

Non preoccuparti! Non sei l'unico malato di mente che aveva pensato ad
un'idea come la tua! Io pensavo a un qualcosa che traducesse la formula in
postfissa e che la ponesse in uno Stack virtuale! A quel punto diventa
abbastanza facile visualizzarla!
Ciao
Fabio

 gruppo appartengo? :)
:-)
Al gruppo di quelli che ci provano a spremersi il cervello in proprio,
per fortuna :-)
Un Paperino a volte Cut&Paster... ma solo se vado di fretta ;-)

 postfissa e che la ponesse in uno Stack virtuale!
Il che, se non erro, è proprio quello che fa quell'EVAL.ZIP sul Sito Comune.


 Tre possibilità:
4) 
http://space.virgilio.it/znt....@virgilio.it/parser/parser.htm
La pagina non è ancora a posto (causa trasferimento in corso :P)
Ciao


Eheheh! E' sempre piacevole sapere che, in caso di riapertura dei manicomi,
non sarei il solo ad essere rinchiuso! :)
Ciao!
- SonicBoom -

 per fortuna :-)
Troppo buono! :)
Ciao!
- SonicBoom -

> 4) 
http://space.virgilio.it/znt....@virgilio.it/parser/parser.htm
Wow!
Praticamente tutto quello che avevo pensato io... gia' realizzato! :)
A quando un parser per avventure testuali (tipo quelle vecchie della
Infocom... non so se ricordi/ricordate)? :)
Ciao!
- SonicBoom -