Newsgroup: it.comp.lang.visual-basic
Titolo: Eseguire una variabile stringa come codice

Sono un programmatore in Fox Pro e da poco sto studiando Visual Basic.
Ho un problema: Posso eseguire come codice il contenuto di una stringa? Mi
spiego meglio con un esempio: Ho una stringa CODX che contiene "pippo =
str(2)". Posso cioè lanciare il contenuto di una stringa come se fosse un
istruzione di codice VB?
In fox la cosa si può fare scrivendo come linea di codice &CODX (& come
prefisso 'Esegue una macro', fa cioè diventare una stringa come una riga di
codice), e per questo sono sicuro che esiste una maniera per farlo anche in
VB ma non sono riuscita a trovarla.
                             Ringrazio anticipatamente chiunque possa
aiutarmi, Maurizio.

codice=funzione???



Puoi utilizzare MS Script Control
    Ciao, Silvio.

Ringrazio anticipatamente chiunque possa aiutarmi, Maurizio.
se intendi le comodissime macrovariabili come in clipper, temo tu debba
metterci una croce sopra.
con molti *forse*, ti potrebbe servire una cosa che mi sembra chiami
execstring che mi sembra di aver visto su 
http://www.trigeminal.com
un bas. se non lo trovi te lo mando. indirizzo qui sotto.
ciao, a.
--
andrea....@tin.it
http://members.xoom.it/xday/_html/
free vb/sw - 
http://www.comune.modena.it/cittadini/apal/html/

...
In puro VB non si può fare.
Puoi però usare degli activeX che lo facciano per te.
Il più comodo da avere  (ed è gratuito) è il MS ScriptControl, che può
essere scaricato dal sito M$ previa compilazione di uno stupido modulo.
http://msdn.microsoft.com/scripting/
Ciao

 execstring che mi sembra di aver visto su 
http://www.trigeminal.com
bello! non so a che mi potrebbe servire, ma č bello!    :)
Ciao
Faber

 bello! non so a che mi potrebbe servire, ma è bello!    :)
:)
http://www.comune.modena.it/cittadini/apal/tmp/bas_execstring.zip





E' stupendo!!! Esegue qualsiasi comando.
Io ho provato ad utilizzarlo per disegnare grafici di funzione:
ho dichiarato Public x e y nel modulo in cui č dichiarata la funzione API
EbExecuteLine, e nella form:
    miaFunzione = Text1.Text    ' es.: "x*sin(x)"
    miaFunzione = "y=" & miaFunzione
    Form1.Scale (EstremoSinistro, SupY)-(EstremoDestro, InfY)
    For x= EstremoSinistro To EstremoDestro Step Passo
        FExecuteCode miaFunzione
        Form1.PSet (x, y), 255
        DoEvents
    Next x
Solo che ho notato che lo ScriptControl č piů veloce.
Peccato che non si riesca a creare "al volo" la funzione stessa in questa
maniera:
    FExecuteCode "Public Function F(x as single) as single: F=" & Text1.Text
& ": End Function"
Per evitare cosě di richiamare di volta in volta la funzione FExecuteCode:
    For x= EstremoSinistro To EstremoDestro Step Passo
        Form1.PSet (x, F(x)), 255
        DoEvents
    Next x
    Ciao, Silvio.


E' stupendo!!! Esegue qualsiasi comando.
Io ho provato ad utilizzarlo per disegnare grafici di funzione:
ho dichiarato Public x e y nel modulo in cui č dichiarata la funzione API
EbExecuteLine, e nella form:
    miaFunzione = Text1.Text    ' es.: "x*sin(x)"
    miaFunzione = "y=" & miaFunzione
    Form1.Scale (EstremoSinistro, SupY)-(EstremoDestro, InfY)
    For x= EstremoSinistro To EstremoDestro Step Passo
        FExecuteCode miaFunzione
        Form1.PSet (x, y), 255
        DoEvents
    Next x
Solo che ho notato che lo ScriptControl č piů veloce.
Peccato che non si riesca a creare "al volo" la funzione stessa in questa
maniera:
    FExecuteCode "Public Function F(x as single) as single: F=" & Text1.Text
& ": End Function"
Per evitare cosě di richiamare di volta in volta la funzione FExecuteCode:
    For x= EstremoSinistro To EstremoDestro Step Passo
        Form1.PSet (x, F(x)), 255
        DoEvents
    Next x
----------------------------------------------------------------------------
----
mi č sebrato una cosa decisamente interessantee ho scaricato
Option Explicit
Declare Function EbExecuteLine Lib "vba6.dll" _
 (ByVal pStringToExec As Long, ByVal Foo1 As Long, _
  ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long
Function FExecuteCode(stCode As String, _
 Optional fCheckOnly As Boolean) As Boolean
    FExecuteCode = EbExecuteLine(StrPtr(stCode), 0&, 0&, Abs(fCheckOnly)) =
0
End Function
----------------------------------------------------------------------------
----
ma non sono stato capace di farla funzionare.
il risultato di ritorno di    y=" x*sin(x)   dove lo prelevo ,EbExecuteLine
č un Boolean
se non ti tolgo tempo mi puoi fare piccoli esempi.
grazzzie
 
orf...@tin.it