A ver quien hace una función que devuelva true si en el código de vb introducido se ejecutará un MsgBox o un Print con "Hola Mundo".
Estructura:
Private Function AdivinarMsgBox(ByVal sVBcode As String) As Boolean
Ejemplo de llamadas:
TRUE
Private Form Load()
If 1<4 Then
Msgbox "Hola Mundo"
End If
End Sub
FALSE
Private Form Load()
'Msgbox "Hola Mundo"
End Sub
TRUE
Private Form Load()
Me.Print "Hola Mundo"
End Sub
FALSE
Private Form Load()
Dim a As Long, b As Long
a=23
b=234
If a>b and 234>45634 Then
if "asd" = "aasdsd" then
Msgbox "Hola Mundo"
end if
End If
End Sub
Vale todo!
Suerte!
Deberías especificar más que puede entrar por sVBcode... ¿Es código encapsulado en una función? ¿Es una función sin cerrar como tus ejemplos? ¿Puede ser cualquier cosa?...
Dime que resultado daría cada bloque:
Private lala()
Debug.Print "Test"
If 1<4 Then
Msgbox "Hola Mundo"
End If
Private sub lala()
If True Then
Msgbox "Hola" + " Mundo"
End If
End Sub
Debug.Print "Hola";
Debug.Print " Mundo"
Dim s as String
s = "Hola Mundo"
MsgBox s
Deberías especificar muchísimo más todos esos aspectos, y aún así quedarían aspectos abiertos que dejan "hacer trampas". Un reto con un planteamiento tan vago se puede abordar según te dé la gana :xD
Creo entender que pides que se haga un sencillo interprete que siga una lógica simple de comparaciones... pero es sólo mi presentimiento.
Saludos >:D
¿Un parse?... mejor un simple instr()... pero veo que deseas que evaluemos la sentencia... eso es algo mas complejo... se tendría que crear un modulo para verificar el LÉXICO, SINTÁCTICO, SEMÁNTICO para generar un Core y a final de cuentas reproducir una pequeña VM para evaluar cada instrucción, es un royo.
Dulces Lunas!¡.
@BlackZeroX: Conociendo a Psyke1 debe estar usando el Eval() de vbscript cargado como objeto para evaluar todo el código. :xD
Jajajajajajaja. :laugh:
Podéis olvidar el reto, el caso es que un amigo me dijo que era TOTALMENTE IMPOSIBLE crear una función que verifique si un código ejecutará un un print o un MsgBox (le es indiferente) con "Hola Mundo".
Yo creo que es posible... :rolleyes:
Al menos lo del print, con Eval() y Instr() se podría solucionar.
Pero explicó mal el reto, lo que me quería plantear era esto (primera página):
http://es.scribd.com/doc/12929250/Indecidibilidad
El cual, obviamente, sí es imposible. :silbar:
DoEvents! :P
@Karcrack: Si también pensé que por esos rumbos iba...
@Psyke1: No creo que sea IMPOSIBLE como dice tu amigo, mejor dicho seria COMPLEJO ya que se tiene que SIMULAR un código en un ambiente virtual llamando a la API respectiva (estilo hook); lo mismo puede aplicar tambien al CScript de vb6 mas en especifico la que llame a un MSGBox...
Dulces Lunas!¡.