Salve a tutti.
Vorrei sottoporre un piccolo quesito.
In Visual basic dovrei poter leggere una formula da un file text oppure da una textbox ed eseguirla.
Se in un textbox oppure in un file txt ho il testo m1+m2 dovrei poterla eseguire e assegnare alla variabile x la somma di m1 e m2.
Sono riuscito a farlo parzialmente utilizzando MSScriptControl, andando a richiamare dal mio form la sub test(), in cui legge dal file leggi.txt i due valori da assegnare (m1 e m2) alla terza riga legge la formula (m1+m2) e una volta eseguita la somma, vorrei che scrivesse nel file.txt il risultato dell'esecuzione della formula :
sub test()
Dim VBScript As New MSScriptControl.ScriptControl
Dim Code As String
Dim Result As Object
Code = "Function CALCOLO()" & vbCrLf
Code = Code & "Set fso = CreateObject(""Scripting.FileSystemObject"")" & vbCrLf
Code = Code & "filePath = ""d:\leggi.txt""" & vbCrLf
Code = Code & "Set file = fso.openTextFile(filePath)" & vbCrLf
Code = Code & "m1=file.ReadLine" & vbCrLf
Code = Code & "m2=file.ReadLine" & vbCrLf
Code = Code & "formula = file.ReadLine" & vbCrLf
Code = Code & "m1=CDbl(m1)" & vbCrLf
Code = Code & "m2=CDbl(m2)" & vbCrLf
Code = Code & "importo = " & "formula" & vbCrLf
Code = Code & "file.Close" & vbCrLf
Code = Code & "calcolo = MsgBox(importo, vbOkOnly)" & vbCrLf
Code = Code & "Set fso = CreateObject(""Scripting.FileSystemObject"")" & vbCrLf
Code = Code & "filePath = ""d:\file.txt""" & vbCrLf
Code = Code & "Set file = fso.CreateTextFile(filePath, True)" & vbCrLf
Code = Code & "file.WriteLine(importo)" & vbCrLf
Code = Code & "file.Close" & vbCrLf
Code = Code & "End Function"
VBScript.Language = "VBSCRIPT"
VBScript.AllowUI = True
VBScript.AddCode(Code)
Result = VBScript.Run("calcolo")
VBScript = Nothing
end sub
Eseguendo il codice non effettua la somma e scrive la stringa di calcolo.
Per rendervi l'idea, in visual FoxPro, si usavano le macro per eseguire questa tipologia di funzione.
Avete qualche suggerimento ?
Grazie