Coger el texto de un string para obtener el nombre de una variable

Iniciado por merlin, 17 Abril 2007, 08:38 AM

0 Miembros y 1 Visitante están viendo este tema.

merlin

Hola forer@s,a ver,alomejor esto que voy a preguntar es una chorrada y ni si quiera sé si puede hacer,pero ya es curiosidad y cabezoneria.Bajo visual basic 6.0.
Tengo dos matrices :
Public asc_files() As String
Public dxf_files() As String
y un String:
nombre_matriz as String
1) nombre_matriz="asc_files"
2)como puedo hacer para que la instruccion
ReDim Preserve nombre_matriz(UBound(nombre_matriz()) + 1)
me lo interprete como:
ReDim Preserve asc_files(UBound(asc_files()) + 1)

Es decir,acceder al texto que esta dentro del String nombre_matriz y me lo tome como el nombre de la variable que yo quiero redimensionar.

Espero haberme explicado bien.
Vuestra paciencia y ayuda son apreciadas
Salu2
100% ESPAÑOL

YEXBOND007

Citar1) nombre_matriz="asc_files"
2)como puedo hacer para que la instruccion
ReDim Preserve nombre_matriz(UBound(nombre_matriz()) + 1)
me lo interprete como:
ReDim Preserve asc_files(UBound(asc_files()) + 1)

No se puede asignar una matriz a una variable eso imposible ademas es perdida de tiempo lo que tu quieres hacer no tiene aplicación hace el proceso más tardado

YEXBOND007

CitarPublic asc_files() As String
Public dxf_files() As String
y un String:
nombre_matriz as String
1) nombre_matriz="asc_files"
2)como puedo hacer para que la instruccion
ReDim Preserve nombre_matriz(UBound(nombre_matriz()) + 1)
me lo interprete como:
ReDim Preserve asc_files(UBound(asc_files()) + 1)
Declara nombre de la matriz as variant en lugar de string con eso puedes asignar a una variable una matriz y eso lo que quieres hacer si no especifica para poder ayudarte

merlin

Hola,a ver,alomejor no me he explicado muy bien.Olvidémonos de la matriz,ok?Imagínate que tengo dos strings:
cadena as String
nombre as String
y yo le asigno a la variable cadena el valor nombre,es decir:
cadena = "nombre"
Pues lo que quiero saber es si se puede hacer que asignandole un valor a la variable cadena que contiene "nombre",lo meta directamente en la variable nombre,es decir:
cadena = "luis" y en realidad esa asignacion la esté haciendo así:
nombre = "luis".
Se puede acceder al nombre de una variable que previamente tenemos metido en una variable cadena y asignarle un valor?
Y ya se que no es operativo pq puedo asignarle textos directamente a la variable nombre,pero es una duda que tengo.

Saludos y gracias por contestar
100% ESPAÑOL

CeLaYa

no entiendo muy bien lo que quires hacer pero me suena a  que lo podrias hacer con un IF o un case


if nombre_matriz = "asc_files" then
     ReDim Preserve asc_files(UBound(nombre_matriz()) + 1)
else
     ReDim Preserve dxf_files(UBound(nombre_matriz()) + 1)
end if



Select case Nombre_Matriz
     case "asc_files"
           ReDim Preserve asc_files(UBound(nombre_matriz()) + 1)
     case "dxf_files"
          ReDim Preserve dxf_files(UBound(nombre_matriz()) + 1)
    case "otra_matriz"
          ReDim Preserve otra_matriz(UBound(nombre_matriz()) + 1)
    case else
          msgbox "error"
end select



a ver si eso te sirve
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

merlin

Hola CeLaYa,al final veo que debo ser yo que no me explico muy bien.No estoy buscando una solucion para lo del caso de las matrices,eso ya lo tengo solucionao con un If como bien dices tu,aunque aparte creo que tienes un error en:
ReDim Preserve asc_files(UBound(nombre_matriz()) + 1)
que deberia ser:
ReDim Preserve asc_files(UBound(asc_files()) + 1)
Lo que quiero es saber si se puede asignar valores a una variable cuyo nombre esta contenido en otra variable,yo creo que no es muy dificil de entender,dejando aparte que dependiendo el caso en el que se quiera utilizar sea operativo o no.
Salu2 y gracias por contestar
100% ESPAÑOL

Hans el Topo

Cita de: merlin en 19 Abril 2007, 07:50 AM
Hola CeLaYa,al final veo que debo ser yo que no me explico muy bien.No estoy buscando una solucion para lo del caso de las matrices,eso ya lo tengo solucionao con un If como bien dices tu,aunque aparte creo que tienes un error en:
ReDim Preserve asc_files(UBound(nombre_matriz()) + 1)
que deberia ser:
ReDim Preserve asc_files(UBound(asc_files()) + 1)
Lo que quiero es saber si se puede asignar valores a una variable cuyo nombre esta contenido en otra variable,yo creo que no es muy dificil de entender,dejando aparte que dependiendo el caso en el que se quiera utilizar sea operativo o no.
Salu2 y gracias por contestar

en otros lenguajes si se puede, pero me da que en visual no xD

lo más parecido que se me ocurre es una colección xD

cadena="Luis"
pepe.add cadena,"nombre"

cada vez que asignes algo a cadena cambia el valor de nombre, al menos con los objetos de las colecciones eso ocurre xD
lo que tengo en duda es si con las variables primitivas ocurre igual xD
 

merlin

Hola Hans,y en otros lenguajes como sería? por ejemplo en C.
Gracias por contestar y salu2
100% ESPAÑOL

Hans el Topo