Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: merlin en 17 Abril 2007, 08:38 am



Título: Coger el texto de un string para obtener el nombre de una variable
Publicado por: merlin en 17 Abril 2007, 08:38 am
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


Título: Re: Coger el texto de un string para obtener el nombre de una variable
Publicado por: YEXBOND007 en 17 Abril 2007, 09:44 am
Citar
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)

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


Título: Re: Coger el texto de un string para obtener el nombre de una variable
Publicado por: YEXBOND007 en 18 Abril 2007, 06:26 am
Citar
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)
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


Título: Re: Coger el texto de un string para obtener el nombre de una variable
Publicado por: merlin en 18 Abril 2007, 07:43 am
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


Título: Re: Coger el texto de un string para obtener el nombre de una variable
Publicado por: CeLaYa en 19 Abril 2007, 02:05 am
no entiendo muy bien lo que quires hacer pero me suena a  que lo podrias hacer con un IF o un case

Código:
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

Código:
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


Título: Re: Coger el texto de un string para obtener el nombre de una variable
Publicado por: 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


Título: Re: Coger el texto de un string para obtener el nombre de una variable
Publicado por: Hans el Topo en 19 Abril 2007, 21:16 pm
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


Título: Re: Coger el texto de un string para obtener el nombre de una variable
Publicado por: merlin en 20 Abril 2007, 07:41 am
Hola Hans,y en otros lenguajes como sería? por ejemplo en C.
Gracias por contestar y salu2


Título: Re: Coger el texto de un string para obtener el nombre de una variable
Publicado por: Hans el Topo en 20 Abril 2007, 10:49 am
En c ahora mismo no me acuerdo si se puede.
En php se haría asi:
http://www.php.net/manual/es/language.variables.variable.php


Título: Re: Coger el texto de un string para obtener el nombre de una variable
Publicado por: merlin en 20 Abril 2007, 11:11 am
Ok, gracias tio  ;)