Solo Expertos... Evaluar Dificil
Publicado por Carlos E. Garcia Cruz (54 intervenciones) el 22/08/2003 21:20:26
mi problema es al hacer un eval
tengo la sintaxis :
IF 0 >9 THEN 9*(44.32/8)*2 ELSE 0*(44.32/8)*2 END IF
pero para poder analizarla con eval tengo que convertirla asi:
IF 1 >9 THEN X= 9*(44.32/8)*2 ELSE X= 0*(44.32/8)*2 END IF
para que pueda funcionar el siguiente codigo:
Set sc = CreateObject("ScriptControl")
sc.Language = "VBScript"
A_Cadena = PCadena
A_TmpEval = ""
A_AntPos = 0
If InStr(A_Cadena, "IF") <> 0 Then
Set m = sc.Modules.Add("Module1")
m.AddCode "Private X"
m.AddCode A_Cadena
m.ExecuteStatement A_Cadena
L_Nom_Valor = m.eval("X")
Else
L_Nom_Valor = sc.eval(PCadena)
End If
Set sc = Nothing
Exit Function
el problema es saber si se puede evaluar la cadena sin tener que
ponerle X=, ya que las cadenas pueden variar muchisimo
En eso estoy atorado..
muchas gracias por sus respuestas..
tengo la sintaxis :
IF 0 >9 THEN 9*(44.32/8)*2 ELSE 0*(44.32/8)*2 END IF
pero para poder analizarla con eval tengo que convertirla asi:
IF 1 >9 THEN X= 9*(44.32/8)*2 ELSE X= 0*(44.32/8)*2 END IF
para que pueda funcionar el siguiente codigo:
Set sc = CreateObject("ScriptControl")
sc.Language = "VBScript"
A_Cadena = PCadena
A_TmpEval = ""
A_AntPos = 0
If InStr(A_Cadena, "IF") <> 0 Then
Set m = sc.Modules.Add("Module1")
m.AddCode "Private X"
m.AddCode A_Cadena
m.ExecuteStatement A_Cadena
L_Nom_Valor = m.eval("X")
Else
L_Nom_Valor = sc.eval(PCadena)
End If
Set sc = Nothing
Exit Function
el problema es saber si se puede evaluar la cadena sin tener que
ponerle X=, ya que las cadenas pueden variar muchisimo
En eso estoy atorado..
muchas gracias por sus respuestas..
Valora esta pregunta
0