Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Variables variables

Estas en el tema de Variables variables en el foro de Visual Basic clásico en Foros del Web. Hola, tengo el siguiente problema, haber si alguien sabe soluciono. tengo por ejemplo 7 texbox, les asigno texto text1.text = "algo aqui" text2.text = "algo ...
  #1 (permalink)  
Antiguo 27/05/2005, 11:26
Avatar de bach16  
Fecha de Ingreso: octubre-2004
Mensajes: 74
Antigüedad: 19 años, 7 meses
Puntos: 0
Variables variables (Variables que varian)

Hola, tengo el siguiente problema, haber si alguien sabe soluciono.

tengo por ejemplo 7 texbox, les asigno texto

text1.text = "algo aqui"
text2.text = "algo aqui"
text3.text = "algo aqui"
text4.text = "algo aqui"
text5.text = "algo aqui"
text6.text = "algo aqui"
text7.text = "algo aqui"

Pero, suponiendo que no son solamente 7, sino que son 70..
¿como le haria para que el numero fuera un valor cambiante (variable)?

text1.text = "algo aqui"
text2.text = "algo aqui"
text3.text = "algo aqui"
text4.text = "algo aqui"
text5.text = "algo aqui"
text6.text = "algo aqui"
text7.text = "algo aqui"
...
...
text(?).text = "algo aqui"

Por ejemplo en php, esto seria algo asi
for($c=1;$c<=70;$c++){
$var{$c} = "algo aqui"
}

Pd. La solucion al problema es sin utilizar vectores (arrays)
__________________
...

Última edición por bach16; 29/05/2005 a las 21:38
  #2 (permalink)  
Antiguo 27/05/2005, 11:58
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Puedes hacer ésto:

Cita:
Dim c As Control

For Each c In Form1.Controls
'tu codigo para checar si es un textbox
'...
'...
Next
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 27/05/2005, 12:27
Avatar de bach16  
Fecha de Ingreso: octubre-2004
Mensajes: 74
Antigüedad: 19 años, 7 meses
Puntos: 0
Investigare un poco acerca de tu fragmento de código.
Gracias :)
__________________
...
  #4 (permalink)  
Antiguo 27/05/2005, 21:57
Avatar de bach16  
Fecha de Ingreso: octubre-2004
Mensajes: 74
Antigüedad: 19 años, 7 meses
Puntos: 0
Estuve analizando lo que me planteaste con lo que yo quiero y... No es lo que quiero.

Lo planteo de otra forma:
Suponiendo que tengo una variable num1, num2, num3, ..., numX. ¿Como puedo
hacer para pasar por todas ellas y interactuar con ellas dinámicamente?

Por ejemplo en php algo asi:
$var1 = "Algo";
$var2 = "Algo";
...
$var999 = "Algo";

Lo haria asi:
for ($c=1;$c<=999;$c++){
$var{$c} = "Algo";
}

.................................................. ............

Y ahora, ¿En Visual Basic como puedo lográrlo? (no en controles del form)
dim var1, var2, var3, ..., varX as String <<Esta parte no estoy pidiendo que venga necesariamente, si no las lineas que siguen... simplemente generar variables dinamicamente

var1 = "algo"
var2 = "algo"
var3 = "algo"
...
varX = "algo"


Nota: No quiero crear un Array (Si se que existen), estoy creando variables dinámicamente, por ej. en PHP aqui esta la documentacion para que se den mas idea Variables variables
__________________
...

Última edición por bach16; 28/05/2005 a las 13:16
  #5 (permalink)  
Antiguo 28/05/2005, 02:14
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
¿Variables creadas dinámicamente?

O_O

Usar "dim" no es crear variables dinámicamente... Además una variable creada dinámicamente es lo que se llama reservar memoria, y eso sólo lo puedes hacer con arrays dinámicos (en VB).

Código:
Option Base 0
Dim var() As String
ReDim var(50)
ReDim Preserve var(100)
y cosas así
  #6 (permalink)  
Antiguo 28/05/2005, 07:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Por qué no indexar

Por que simplemente no indexas el textbox y ya stá, le colocas el index dentro del array de controles, la cual puede ser una variable como querías:
Text1(?).Text = "algo aquí"

__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 28/05/2005, 14:23
Avatar de bach16  
Fecha de Ingreso: octubre-2004
Mensajes: 74
Antigüedad: 19 años, 7 meses
Puntos: 0
Ódio VB

Y ... ¿En VBNet existe la posivilidad de manipular Variables variables? o ¿Tampoco contemplaron esto los creadores de VB ?
__________________
...
  #8 (permalink)  
Antiguo 28/05/2005, 16:34
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
¿Variables variables? Explícate mejor... ;)
  #9 (permalink)  
Antiguo 28/05/2005, 17:06
Avatar de bach16  
Fecha de Ingreso: octubre-2004
Mensajes: 74
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por MaxExtreme
¿Variables variables? Explícate mejor... ;)
Ok, auque... Mas claro no es necesario, ahi voy (Hasta el ejemplo comparativo con PHP expúse).

Por ejemplo yo tengo variables que se llaman
num1
num2
num3
...
numXXXX
y asi sucesivamente, no es un vector, ya que un Vector tiene la
siguiente forma
num(0) << << Aqui, el nombre identificador siempre es el mismo, unicamente cambia el índice
num(1)
num(2)
...
num[indice_x]


Lo que yo quiero lograr es crear variables dinamicamente, no crear un arreglo de X posiciones.

¿Quieres algo mas descriptivo? Aqui esta el link a el mismo tema pero en PHP >> Variables variables

E insisto en mi pregunta ¿En VB.Net existe la posivilidad de manipular Variables dinamicamente, haa y expresiones regulares tambien?

¿VB6 Tiene soporte para expresiones Regulares?

-Estoy programando sobre VB6 ¿Me recomiendan cambiar a VB.Net?
__________________
...
  #10 (permalink)  
Antiguo 29/05/2005, 02:28
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Siempre se usan arrays, vectores, están para eso... Además es extraño saber para que se pueden usar ese tipo de variables en programación habitual, puesto que con arrays o vectores el índice puedes recorrerle, y de la otra manera no, porque está ya metido en el nombre de la variable.

Si me explicas qué utilidades puede tener... Para un lenguaje como PHP, Perl y similares bien, porque es fundamental el manejo de texto, pero a los demás...

Yo te recomiendo, hablando sobre lo de .NET, que evidentemente pases a VB.NET, o mejor aún C#. Y si quieres hacer lo mejor, olvídate de VB y empieza con C.

.NET sí que tiene expresiones regulares, aunque yo no me fijaría en eso a la hora de cambiar de lenguaje...

Puedes usar arrays/vectores normales y corrientes, no creo que suponga ningún problema. En cualquier caso el único método que da VB para obtener memoria en ejecución es "ReDim", y sólo actúa sobre arrays.
  #11 (permalink)  
Antiguo 29/05/2005, 02:29
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por bach16
Y ... ¿En VBNet existe la posivilidad de manipular Variables variables? o ¿Tampoco contemplaron esto los creadores de VB ?
Si odias VB, ¿qué haces con él? ;)
  #12 (permalink)  
Antiguo 29/05/2005, 09:21
Avatar de bach16  
Fecha de Ingreso: octubre-2004
Mensajes: 74
Antigüedad: 19 años, 7 meses
Puntos: 0
Gracias por tu idéa MaxExtreme.

PD. En ningun momento he dicho que ódie VB, solo que estoy algo asombrado...
...Desde que inicie con VB me he encontrado con que muchas cosas no las
contemplaron los creadores de VB << y Bueno, he de ahí la expresion
pero... ¿Odiar VB :S ?
__________________
...
  #13 (permalink)  
Antiguo 29/05/2005, 09:27
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por bach16
Gracias por tu idéa MaxExtreme.

PD. En ningun momento he dicho que ódie VB, solo que estoy algo asombrado...
...Desde que inicie con VB me he encontrado con que muchas cosas no las
contemplaron los creadores de VB << y Bueno, he de ahí la expresion
pero... ¿Odiar VB :S ?
No, lo saqué de tu título de ese mensaje

" Ódio VB
Y ... ¿En VBNet existe la posivilidad de manipular Variables variables? o ¿Tampoco contemplaron esto los creadores de VB ?"

El Quote no mete el título, pero supuse que sabrías de que hablaba ;)


Y sobre lo que contemplaron... Es que VB no es un lenguaje "profesional" digamos... Aún no sé por qué la gente lo soporta. Y esas cosas como el uso de variables indeclaradas "Option Explicit", o los arrays con base 1 "Option Base 0", el tipo Variant, los bucles casi inútiles, el abuso de goto (se ve menos ya), la no capacidad de manejar punteros ni memoria dinámica, las DLLs no estándar que genera... Hace que la gente empiece a programar con él porque dicen que es "fácil" y lo que realmente hace es incitar a la mala programación. Cuando progresas e intentas hacer algo con el lenguaje fuera de lo normal, resulta que tienes que acudir a cosas extrañas o externas.
  #14 (permalink)  
Antiguo 29/05/2005, 09:38
Avatar de bach16  
Fecha de Ingreso: octubre-2004
Mensajes: 74
Antigüedad: 19 años, 7 meses
Puntos: 0
Me gusto mas tu respuesta :)
y en realidad éso es.... Insita a la mala programacion :S
__________________
...
  #15 (permalink)  
Antiguo 24/07/2009, 01:30
 
Fecha de Ingreso: marzo-2007
Mensajes: 3
Antigüedad: 17 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Variables variables

yo tambien estaba buscando la manera de hacer las variables dinamicamete y creo que la mejor opcion es crear controles ocultos como labels, asi se pueden crear x, asi:

dim etiqueta as New System.windows.forms.Label

For i = 1 to 10
me.controls.add(Etiqueta)
Etiqueta.Name("Variable"&i)
Etiqueta.visible = false
Etiqueta.text = "lo que tenga la variable"
next

y para llamarlos seria asi

Dim control as control
control = me.Controls.Find("Variable"&i, true )
dim lab as new System.windows.forms.label
lab = directcast(control(0),Label)

y el lab llamo la propiedad text para obtener el contenido de la variable
espero que les sirva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:49.