ejecutar instrucciones desde un string

13/06/2005 - 23:28 por erojas | Informe spam
Esto se puede hacer (en vb6):

He estado preguntado en distintos foros y creo que o no se
puede hacer o el tema no lo he planteado correctamente ,
alguine podria ayudarme a confirmar esto ?

Tengo la necesidad que desde un archivo de texto (por
ejemplo un INI)
leer encabezados y datos y asignarlos a un tipo de datos de
usuario , pero no he encontrado algo donde pueda asignar a

las variables de usuario los datos del archivo .
probablemente no me doy a entender bien por lo que pongo
los ejemplos

:

Datos del archivo ini

[LOCALIDADES]
DATOS=\\SERVIDOR\CARPETA1
IMAGENES=\\SERVIDOR\CARPETA2
SUCURSAL
USUARIO=cVENTAS
ETC...

[OPTIONS]
LETRA=1
SECUENCIA=0
ETC...

Declaracion de tipos :

Public type LOCALIDADES
DATOS as String
IMAGENES as String
SUCURSAL as String
USUARIO as String
end type

Public type OPTIONS
LETRA as Integer
SECUENCIA as Integer
end type

Lo que no encuentro como funcione es lo siguiente :

(funciones API para leer INI - esto esta claro y los dim)

grupo ="LOCALIDADES"

Set Tcontenidos = IniGetSection(PATH + "\" + App.EXEName +
".ini", grupo)

For i = 1 To Tcontenidos.Count Step 2
sclave = Tcontenidos(i)
svalor = Tcontenidos(i + 1)
StrCodigo = Grupo & "." & sclave & "=" & Chr(34) &
svalor & Chr(34)

...

Ahora como le hago para que lo que esta en StrCodigo se
ejecute como parte del codigo ?

Preguntas similare

Leer las respuestas

#1 Juan Kautho
13/06/2005 - 23:56 | Informe spam
SI lo kieres hacer en .NET te toca con CodeDom y Reflexion
Articulo
http://www.willydev.net/Descargas/P...deDom.Aspx
y ejemplo
http://www.willydev.net/descargas/c...Cadena.zip


Si es VB 6.0 usa el MS Script Control y lanza la funcion Eval("las
intrucciones aca")


"erojas" escribió en el mensaje
news:135001c5705e$e2ed81e0$
Esto se puede hacer (en vb6):

He estado preguntado en distintos foros y creo que o no se
puede hacer o el tema no lo he planteado correctamente ,
alguine podria ayudarme a confirmar esto ?

Tengo la necesidad que desde un archivo de texto (por
ejemplo un INI)
leer encabezados y datos y asignarlos a un tipo de datos de
usuario , pero no he encontrado algo donde pueda asignar a

las variables de usuario los datos del archivo .
probablemente no me doy a entender bien por lo que pongo
los ejemplos

:

Datos del archivo ini

[LOCALIDADES]
DATOS=\\SERVIDOR\CARPETA1
IMAGENES=\\SERVIDOR\CARPETA2
SUCURSAL
USUARIO=cVENTAS
ETC...

[OPTIONS]
LETRA=1
SECUENCIA=0
ETC...

Declaracion de tipos :

Public type LOCALIDADES
DATOS as String
IMAGENES as String
SUCURSAL as String
USUARIO as String
end type

Public type OPTIONS
LETRA as Integer
SECUENCIA as Integer
end type

Lo que no encuentro como funcione es lo siguiente :

(funciones API para leer INI - esto esta claro y los dim)

grupo ="LOCALIDADES"

Set Tcontenidos = IniGetSection(PATH + "\" + App.EXEName +
".ini", grupo)

For i = 1 To Tcontenidos.Count Step 2
sclave = Tcontenidos(i)
svalor = Tcontenidos(i + 1)
StrCodigo = Grupo & "." & sclave & "=" & Chr(34) &
svalor & Chr(34)

...

Ahora como le hago para que lo que esta en StrCodigo se
ejecute como parte del codigo ?
Respuesta Responder a este mensaje
#2 Tristan
14/06/2005 - 20:26 | Informe spam
No estoy muy seguro, erojas, de lo que necesitas, ni de lo que pretende
hacer tu código.

Por lo que creo adivinar. ¿Te refieres a acceder a propiedades de los tipos
de usuario a través de su nombre, leido desde unos archivos Ini?

Bueno, si te he entendido bien, eso no es demasiado difícil. Tienes que
utilizar reflection:

Creo que esto sería un ejemplo de lo que quieres. Estoy utilizando un
Hashtable en lugar de un archivo Ini, para que el ejemplo sea
autosuficiente. Recuerda de paso que la tendencia es a utilizar documentos
xml en lugar de archivos Ini.

Public Class Localidades
Public Datos As String
Public Imagenes As String
Public Sucursal As String
Public Usuario As String
End Class

Dim localidades As New Hashtable
localidades.Add("Datos", "\\SERVIDOR\CARPETA1")
localidades.Add("Imagenes", "\\SERVIDOR\CARPETA2")
localidades.Add("Sucursal", "4")
localidades.Add("Usuario", "cVENTAS")
...

Dim Grupo As New Localidades
Dim tipo As Type = Grupo.GetType()

For Each localidad As DictionaryEntry In localidades
tipo.GetField(localidad.Key).SetValue(Grupo, localidad.Value)
Next

Si también quieres que el nombre del tipo (en este caso Localidades) también
se lea en forma de string, debes usar Type.GetType. Activator.CreateInstance
para crear la instancia.

Esto último no te lo pongo en el ejemplo, puesto que no me queda claro en el
código que has escrito, de donde sacas la variable "Grupo". Imagino que la
declaras en algún momento anterior, puesto que lógicamente no se puede dar
valores a un Type en vb6.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#3 Tristan
14/06/2005 - 20:29 | Informe spam
En realidad, con Eval no veo como ibas a hacerlo, puesto que los datos de
una aplicación vbscript y los de la aplicación vb6 son independientes.

Pero puedes usar vbscript a través de Script control, perfectamente en .net.
En realidad puedes utilizar cualquier componente COM en .net.

Juan Carlos Badiola
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida