Macrosustituciones

Hola amigo que tal:
Te explico mi inquietud quiero hacer una macrosustitución, no se como se le conocerá aquí en basic pero al menos en fox así se llama "MACROSUSTITUCION", lo que quiro hacer es lo siguiente
Dim a1,a2 As String
Dim x,y As Integer
a1="Carlos"
a2="Ana"
print a1 'Me devuelve "Carlos"
print a2 'Me devuelve "Ana"
Hasta alli no hay problema, pero si hiciera lo sgte
x=1
y=2
"a"+Trim(str(x)) 'Esto me Devuelve a1
Print "a"+Trim(str(x)) 'Devuelve a1
'LO QUE QUIERO ES QUE A "a"+Trim(str(x)) ATRAVEZ DE UN PROCESO ME DEVUELVA EL VALOR en este caso seria "Carlos"
En Fox Esto seria simple solo haria lo sgte
c="a"+Trim(str(x))
?&c
EL Aspersand comvierte la cadena en una variable valida y si esta tubiera valor lo devuelve.
Por favor amigo espero que me haya dejado entender y me ayudes
Gracias
Saludos Carlos [email protected]

5 respuestas

Respuesta
1
Emplea arrays o colecciones:
Arrays:
dim a(10) as string
dim Result as string
a(0)="Carlos"
a(1)="Ana"
a(...)
for con=0 to 10
Result=a(con)
print.debug Result
next
Respuesta
1
Esto sería como una matriz con su valor de variable, esto se podría hacer así:
dim a(1 to 2) as string
a(1)= "Carlos"
a(2)= "Ana"
e=1
Print a(e) ' Esto imprimiría Carlos
O bien:
e=2
Print a(w) ' Esto imprimiría Ana.
Espero esto te sirva. Atentamente. Manuel Fernández
Si las matrices son una solución, pero no son aceptadas como parámetros en un procedimiento,
de todos modos muchas gracias amigo por la atención prestada.
saludos [email protected]
Respuesta
1
Hasta donde sé no existen las macrosustituciones comentadas, se tendría que hacer tomando el valor en forma directa y no el nombre de la variable.
Respuesta
1
Lo que se me ocurre que puedes hacer es crearte un array y de esa manera acceder directamente al dato una vez que sepas la variable.
a(1)="Carlos"
a(2)="Ana"
....
x=1
"a" & Trim(a(x)) te devolverá el valor de a(1) que en este caso es CArlos
Te recuerdo que los arrays comienza con el indice 0
Suerte y saludos
Rotty
Respuesta
1
Bien lo que necsesitas es una matriz porque en vb es diferente
'declara la matriz
dim matriz(1 to 10) as string
dim c as string
'entonces para usarla
matriz(0)="Carlos"
matriz(1)="Ana"
for i=0 to 10
c=matriz(i)
next i
'i=0 devuelve Carlos
'i=1 devuelve Ana

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas