Está en la página 1de 9

10/4/23, 13:54 Visual Basic - Variables dinámicas

Iniciar sesión Crear cuenta

Documentación y Recursos Foros y Consultas Programadores Programas Otros


Cursos y Manuales Foros de Consulta Programadores Programas/Utilidades Utilidades
Biblioteca de Temas Chats de prog. Ofertas de Trabajo Nuestros Programas Colaboradores
Código Fuente Tablón de Notas Iconos y Cursores Encuestas/Estadísticas
Noticias/Artículos Diccionario informático Preguntas/Respuestas Contactar
Comunidad de Programadores
PDFs de programación

LWP » Foros » Visual Basic » Variables dinámicas

Visual Basic - Variables dinámicas

Buscar Nuevo Tema Volver

<< >>

Vista: arbol  

Variables dinámicas 16.443 visitas


Elias Cancino (06/04/2005 17:11:22) 35 respuestas

RE:Variables dinámicas
Christian (06/04/2005 17:15:42)

RE:Variables dinámicas
Elias (06/04/2005 17:21:56)

RE:Variables dinámicas
Christian (06/04/2005 17:27:34)

RE:Variables dinámicas

Variables dinámicas
Publicado por Elias Cancino (14 intervenciones) el 06/04/2005 17:11:22

Necesito saber si es posible hacer referencia a una variable si el nombre de esta ha sido generado a partir de una cadena. Para ejemplificar
mi duda :

dim var1 as string


dim var2 as string
dim var3 as string
dim var_oracion as string

var1= "un "


var2= "perro "
var3= "me mordió "
for i=1 to 3
var_oracion = var_oracion & varN ' Como hago para que este nombre
'de variable se incremente
next i

Espero entiendan mi pregunta y mejor que eso, que me la respondan. No necesito soluciones con arreglos u objetos numerados. De
antemano muchas gracias.

Valora esta pregunta 0 Responder

RE:Variables dinámicas
Publicado por Christian (675 intervenciones) el 06/04/2005 17:15:42

for i=1 to 3
var_oracion = var_oracion & var&i
next i

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Elias (14 intervenciones) el 06/04/2005 17:21:56

https://www.lawebdelprogramador.com/foros/Visual-Basic/480911-Variables-dinamicas.html 1/9
10/4/23, 13:54 Visual Basic - Variables dinámicas

No era eso lo que esperaba Christian. Creo que no entiendes la pregunta. Si te fijas en el ejemplo, yo ya se usar concatenadores de
cadena, lo que no se es hacer que una cadena se transforme en variable. Ah, la idea es que en var_oracion al final quede el valor "Un
perro me mordió"

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Christian (675 intervenciones) el 06/04/2005 17:27:34

Con lo que te di te va salir:


"Un perro me mordio"

Nose que es lo que quieres, no te entiendo-

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Elias (14 intervenciones) el 06/04/2005 17:40:17

¿En que version de VB lo probaste? me parece que no es la misma que la que yo tengo, aunque en realidad eso no deberia importar, pero
por lo menos en mi VB, tu solucion no entrega "Un perro me mordió" sino que entrega "123".

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Christian (675 intervenciones) el 06/04/2005 17:50:40

Bueno tio qe alguien te ayude.... pero parece qye nadie se interesa por tu pregunta simplona.

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Elias (14 intervenciones) el 06/04/2005 17:57:56

Simplona y todo lo que quieras, igual te quedó grande...

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Apolos (1 intervención) el 06/04/2005 18:00:46

puede ser simplona pero nadie la ha podido responder

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Eduardo (138 intervenciones) el 06/04/2005 18:03:20

que piense un poco pues. Todo facil quiere.!!!

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Sapotec (1 intervención) el 06/04/2005 18:08:29

Gracias por la ayuda tropa de vagonetas, si no saben, mejor no contesten huevadas........

Valora esta respuesta 0 Comentar

prueba con este codigo


Publicado por carlos (101 intervenciones) el 06/04/2005 19:04:19

mira no se si es lo que esperas, pero al menos la lógica deberia ayudarte a tratar de llegar a lo que quieres hacer.. espero te
sirva

https://www.lawebdelprogramador.com/foros/Visual-Basic/480911-Variables-dinamicas.html 2/9
10/4/23, 13:54 Visual Basic - Variables dinámicas
---------------------------------------------------
Dim var1 As String, var2 As String, var3 As String, oracion As String, var As String

Private Sub Command1_Click()


For i = 1 To 3

oracion = oracion & llamar_cadena(i)


Next
Text1 = oracion
End Sub

Private Sub Form_Load()


var1 = "un "
var2 = "perro "
var3 = "me mordio"
var = "var"
End Sub
Function llamar_cadena(ByVal i As Integer) As String
Select Case i
Case 1
llamar_cadena = var1
Case 2
llamar_cadena = var2
Case 3
llamar_cadena = var3
End Select
End Function
------------------------------------------------------

Valora esta respuesta 0 Comentar

RE:prueba con este codigo


Publicado por Elias (14 intervenciones) el 06/04/2005 20:44:25

Gracias Charlie, igual me sirve para el ejemplo que puse, pero la idea es hacerlo genérico, pues si tuviera 20 variables, la idea
seria no hacer 20 cases distintos si no que uno solo. Igual, muchas gracias por tu ayuda.

Valora esta respuesta 0 Comentar

RE:prueba con este codigo


Publicado por carlos (8 intervenciones) el 06/04/2005 22:12:32

entonces.. que chuch@ quieres MIERD@!!!!

Valora esta respuesta 0 Comentar

RE:prueba con este codigo


Publicado por Anonimo (2 intervenciones) el 06/04/2005 22:15:26

apoyo a los ultimos 2 comentarios...!!!

Valora esta respuesta 0 Comentar

RE:prueba con este codigo


Publicado por Christian (675 intervenciones) el 06/04/2005 22:19:58

Si no te explicas, nadie te va a poder ayudar, nadie ha entendido tu pregunta, aca todos sabemos, lo que no sabemos es ser
adivinos.

Valora esta respuesta 0 Comentar

RE:prueba con este codigo


Publicado por Elias (14 intervenciones) el 07/04/2005 00:08:33

Oye Christian, cuando leí tu primera respuesta me extrañó lo estúpida que era, pues en ningún caso se acercaba a la
solución, fue una respuesta tonta. Pero ahora entiendo por que respondes leseras sin que te importe mucho. Quieres sumar
puntos para aparecer más experto en la tabla de los + expertos. No es buena práctica lo que haces

Valora esta respuesta 0 Comentar

https://www.lawebdelprogramador.com/foros/Visual-Basic/480911-Variables-dinamicas.html 3/9
10/4/23, 13:54 Visual Basic - Variables dinámicas

RE:Variables dinámicas
Publicado por Elias (14 intervenciones) el 06/04/2005 23:43:57

A ver, a ver. Por lo visto ustedes saben leer pero no entienden lo que leen. Parece que tienen problemas con las oraciones muy largas pues
con más de 6 palabras pierden el hilo de la idea. Les he dado un ejemplo super sencillo para que lo entiendan, que incluso pueden copiar y
pegar en un formulario vb y hacer las pruebas que estimen convenientes (¿Les cuesta mucho hacer un copiar y pegar?), les he explicado
más de una vez de buena forma, pero aún así no entienden. ¿Que puedo esperar entonces, si aun que les explique con peras y manzanas
no van a entender? Ah, pero entienden perfectamente cuando uno les dice "no entiendes lo que quiero", se hacen los ofendidos, me culpan
a mi de su mala lectura y comienzan a despotricar contra mi. No los entiendo.

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Elias (14 intervenciones) el 06/04/2005 23:46:16

Pero comencemos denuevo (si aun tienen alguna neurona sin quemar). Supongamos que uno de esos informáticos que tienen cosas
importantes que hacer creó una aplicación donde en un procedimiento ocupa 50 variables distintas, las cuales tiene que evaluar. Las
variables son distintas pero muy similares y son como muestra el ejemplo que sigue:

Dim var1 as string


Dim var2 as string
Dim var3 as string
Dim var4 as string
.
.
.
Dim var50 as string
(Espero que entiendan los dim)

Ahora que tenemos 50 variables distintas pero muy parecidas debo evaluarlas una a una. Cada una de estas evaluaciones es extensísima,
pero cambiaremos todo ese código por un simple print en el debug (espero que también entiendan esto del debug)

debug.print var1
debug.print var2
debug.print var3
debug.print var4
.
.
.
debug.print var50

La pregunta es la siguiente, pongan atención:

¿Es posible hacer un ciclo for como el que sigue?

For i = 1 to 50
debug.print var(i)
Next i

Donde var(i) es en realidad el nombre de variable var con el numero que toma i i.e.

Var(i) = var1 cuando i= 1

continua...

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Elias (14 intervenciones) el 06/04/2005 23:47:04

i.e. ¿se puede hacer referencia a variables a partir de una cadena?


i.e. ¿como hago referencia a todas y cada una de las variables dentro del ciclo en forma genérica? (como la solución de carlos, pero sin
un case para cada variable)
i.e. ¿como hago referencia a todas y cada una de las variables dentro del ciclo en forma genérica concatenando cadenas? (La solución
entregada por Christian no sirve y es mentira que a él le arrojaba la oración completa, pues ni siquiera se tomó el tiempo de probar lo
que sugirió)

No puedo ser más claro y sencillo, pues para hacer esto más gráfico debería hacer un curso de pedagogía diferencial y después
explicarles.

Necesito saber puntualmente como se hace esto, no me sirven las formas alternativas.

Si se la puede, juegue, sino, no tire basura a la gente por su poco C.I.

Valora esta respuesta 0 Comentar

https://www.lawebdelprogramador.com/foros/Visual-Basic/480911-Variables-dinamicas.html 4/9
10/4/23, 13:54 Visual Basic - Variables dinámicas

RE:Variables dinámicas
Publicado por Mike79 (97 intervenciones) el 07/04/2005 00:35:34

Jejejeje, pues creo que si te hace falta el curso de peda-gogia

Pues haber, platiquemos entonces de VBasic a nivel ya mas robusto.


En VBasic, a diferencia de otros lenguajes como perl, no puedes evaluar el contenido de una variable, tampoco puedes usar variables
referenciadas, por lo consiguiente no puedes evaluar el contenido de una variable como si fuera otra variable. (No me importa si los
demas entendieron o no, si Elias lo capta me basta).

VBasic es un lenguaje de programación sencillo, se esfuerza por hacer las cosas sencillas y mantenerlas asi. No existe una colección
de variables que puedas accesar para recorrer todas y cada una de las variables, ni tampoco puedes evaluar el contenido de las
variables y ejecutarlas.

De hecho vbasic es tan pero tan sencillo, que no puedes usar punteros. Y al trabajar con objetos en windows, es muy dificil programar
algunas cosas sin usar punteros.

No se si me creas, pero enserio te digo, que no se puede, las unicas colecciones de objetos que existen son: Forms, Printers y Controls

Si en lugar de variables tuvieras Controls, lo podrias hacer.

Por ejemplo:
Supongamos que tienes Text1, text2, text3, text4..... text50 (que son controles de tipo text).

Entonces podrias hacer:

Dim Resultado As String


Resultado = ""

For Each Control In Controls


If Mid(Control.Name, 1, 4) = "Text" Then
Resultado = Resultado + " " + Control.Text
End If
Next
Debug.Print Resultado

Tambien podrias crear tu propia coleccion de objetos, pero no se si te sirva.

Saludos!
-
Miguel Angel
Mike79

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por BENJO (679 intervenciones) el 07/04/2005 04:18:55

Elias
El código que pongo a continuación te facilita hacer lo que deseas, con variables, es decir, utilizar las variable por su numeración
invocándolas con string y no por su nombre nominal.
Digamos que sería mucho más sencillo hacerlo con vectores, pero evidentemente vos necesitás que sean variables
La única condición para que este código funcione, es que las variables que manejes sean Públicas

Private Declare Function EbExecuteLine Lib "vba6.dll" _


(ByVal pStringToExec As Long, ByVal Foo1 As Long, _
ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

Public var0 As String


Public var1 As String
Public var2 As String
Public var3 As String
Public var4 As String
Public Oracion As String
Private Sub Command1_Click()
var0 = "Igual "
var1 = "los "
var2 = "punteros "
var3 = "existen "
var4 = "en VB "
Dim i As Integer
For i = 0 To 4
FExecuteCode "form1.Oracion=form1.Oracion & form1.Var" & i
Debug.Print Oracion
Next
End Sub
Function FExecuteCode(stCode As String, Optional fCheckOnly As Boolean) As Boolean

https://www.lawebdelprogramador.com/foros/Visual-Basic/480911-Variables-dinamicas.html 5/9
10/4/23, 13:54 Visual Basic - Variables dinámicas
FExecuteCode = EbExecuteLine(StrPtr(stCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function

ESPERO QUE TE SIRVA.

Valora esta respuesta 0 Comentar

RE:Si se pudo...
Publicado por OtroAnonimo (1 intervención) el 07/04/2005 05:02:34

Si se pudo

Valora esta respuesta 0 Comentar

RE:Si se pudo...
Publicado por Elias (14 intervenciones) el 07/04/2005 15:50:02

Amigos, realmente agradezco vuestro tiempo y cooperación (ustedes sí saben leer). Después de leer vuestras respuestas vuelvo
a sentir confianza en que hay gente de buena voluntad que entra a este sitio. Muchisimas gracias.

Valora esta respuesta 0 Comentar

RE:Si se pudo...
Publicado por Otro Argento (3 intervenciones) el 05/12/2022 20:39:46

Elias, que bueno que hace 7 años a otro "loco" se le ocurrió lo mismo que a mí y que tuviste la paciencia para explicarte
muchas veces hasta encontrar uno que realmente tiene "comprensión de texto" y los conocimientos para resolver(nos) el
problema.

Esto yo ya lo hice hace tiempo, en pascal que es super fácil y en batch que también es fácil pero no tan conocido, pongo el
código para batch por si dentro de 7 años o más, alguien lo requiere:

set Clave1="Clave_Del_Usuario_1"
set Usuario=1

call set Clave=%%Clave%Usuario%%%


echo %Clave%

Saludos.

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Mike79 (97 intervenciones) el 07/04/2005 18:08:02

Yo no dije que los punteros no existieran internamente.


Lo que digo es que es muy problematico usarlos.
Yo uso varias apis de windows y por ejemplo, manejar la libreria winsock.dll directamente es un super castre.

Esta interesante tu API de VBasic que permite ejecutar un codigo. ¿Y como seria si es en VBasic5 o .Net ?.

Saludos!
-
Miguel Angel
Mike79

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Benjo (679 intervenciones) el 08/04/2005 04:47:49

En .Net no tengo ni idea, dado que todavía no me he aventudado a estudiarlo.

En Visual Basic 5 sería así


Declare Function EbExecuteLine Lib "vba5.dll" _
(ByVal pStringToExec As Long, ByVal Foo1 As Long, _
ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

' Y en VB For Application 97 sería así


Declare Function EbExecuteLine Lib "vba332.dll" _

https://www.lawebdelprogramador.com/foros/Visual-Basic/480911-Variables-dinamicas.html 6/9
10/4/23, 13:54 Visual Basic - Variables dinámicas
(ByVal pStringToExec As Long, ByVal Foo1 As Long, _
ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Mike79 (97 intervenciones) el 09/04/2005 06:48:26

Interesante.
Gracias

-
Miguel Angel
Mike79

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Otro Argento (3 intervenciones) el 05/12/2022 20:29:16

Benjo, sencillamente:
GRACIAS TOTALES!
Sos verdaderamente un genio!
Saludos.

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Anonimo (100 intervenciones) el 07/04/2005 12:51:09

No tienes nada que entender o dejar de entender y los demás tampoco. Este es un foro de colaboración no de obligaciones. Si quieres
exigir PAGAS un tutor y se acabó el problema.

A lo que te contestan es "tómalo o déjalo" nadie está obligado a nada. A ver si lo entiendes tu eso.

Valora esta respuesta 0 Comentar

RE:Variables dinámicas
Publicado por Elias (2 intervenciones) el 07/04/2005 16:00:26

Tienen razón amigos realmente soy un IGNOR@NTE, la proxima vez no hare ninguna pregunta estupid@, mejor me dedico a lavar y
planchar la ropa de mi hermana. BYE.

Valora esta respuesta 0 Comentar

Ja Ja Ja
Publicado por Elias (2 intervenciones) el 11/04/2005 19:49:54

No había visto este mensaje. Que patético loco, que a uno lo suplanten. Algún cobarde debio haber sido. Y al final, igual yo tenía
razón, ninguno de los gurues que me estaban insultando (Christian, Eduardo, Carlos, Mike y hasta un anónimo) pudo responder. Igual
llegó la respuesta de gente que sí sabe (Grande Benjo, Gurú, no como estos otros vagos).

Valora esta respuesta 0 Comentar

RE:Ja Ja Ja
Publicado por Anonimo (27 intervenciones) el 12/04/2005 16:52:06

para mi que Benjo, Gurú te la paran metiendo por eso tanta alabanza.
Saludos Elias JA JA JA perdiste bien feo.

Valora esta respuesta 0 Comentar

RE:Ja Ja Ja
Publicado por Elías (14 intervenciones) el 14/04/2005 17:27:30

Podrias ser más ingenioso para burlarte...


Además, ¿por que dices que yo perdí feo, si al final, eran ustedes los weones que no entiendieron la pregunta, pero igual alguien
que sí sabe me respondió? Parece que tu no cachai bien la realidad.... ¿eres enfermo o algo así? Eso si, eres super cobarde, pues ni

https://www.lawebdelprogramador.com/foros/Visual-Basic/480911-Variables-dinamicas.html 7/9
10/4/23, 13:54 Visual Basic - Variables dinámicas
siquiera que atreves a poner tu correo. En lo sucesivo, y que quede claro para todos, solo responderé a comentarios inteligentes, y
no a bodrios como este que escribió Anonimo.

Valora esta respuesta 0 Comentar

QUE RISA
Publicado por JA JA (1 intervención) el 18/04/2005 21:05:42

SERA QUE POR ESTO YA NO HACES PREGUNTAS??? O TE ESTAS DEMORANDO MAS PARA PODER ELABORARLAS DE UNA MEJOR
MANERA?? BUENO, SUERTE CON LA SIGUIENTE PREGUNTA E S T U P I D A QUE HAGAS.

Valora esta respuesta 0 Comentar

otro camino
Publicado por Denarcien (1 intervención) el 30/09/2019 02:05:32

1 Option Explicit
2 Public Sub Vardinamica()
3 Dim Palabra() As String
4 Dim N As Integer
5 Dim Frase As String
6 Dim i As Long
7 N = InputBox("Introduzca cuantas palabras quiere")
8 ReDim Palabra(1 To N)
9 For i = 1 To N
10 Palabra(i) = InputBox("Introduzca el valor de la palabra (" & i & "): ")
11 Next i
12 For i = 1 To N
13 Frase = Frase & " " & Palabra(i)
14 Next i
15 MsgBox "La frase formada es:" & vbCr & Frase
16 i = InputBox("Introduza el número de palabra que quiere averiguar. ")
17 MsgBox "La palabra (" & i & ") es: " & Palabra(i)
18 End Sub

Valora esta respuesta 0 Comentar

Ja Ja Ja
Publicado por Otro Argento (3 intervenciones) el 05/12/2022 20:48:15

Elias, estoy de acuerdo con lo que decis de los charlatanes que se la dan de gurús, pero metiste en la bolsa a Mike, que él sí tiene
"comprensión de texto" y te respondió bien.
Lo que pasa es que Mike no hizo "trampa" cómo Benjo que se importó una .dll para agregar una funcionabilidad al VB la cual éste
no posee.
Por mi parte, muchas gracias a Elías por hacer la pregunta, a Mike por su respuesta y a Benjo por la solución.
Saludos.

Valora esta respuesta 0 Comentar

MySQL RE:enlazar ado con image

PDFs de Programación para descargar

https://www.lawebdelprogramador.com/foros/Visual-Basic/480911-Variables-dinamicas.html 8/9
10/4/23, 13:54 Visual Basic - Variables dinámicas

Clase 1: Introducción y visión FileMaker 14 Guía ODBC y StarOffice 7 Office Suite -


general - Curso Python en 8 JDBC Manual de programacion en
(1)

11 paginas 37 paginas 215 paginas


Creado hace 12a (02/12/2010) Creado hace 8a (18/12/2014) Creado hace 19a (10/10/2003)

Información y Recursos Foros y Consultas Programadores Programas Otros


Cursos y Manuales Foros de Consulta Programadores Programas/Utilidades Utilidades
Biblioteca de Temas Chats de programación Ofertas de Trabajo Nuestros Programas Colaboradores
Código Fuente Tablón de Notas Iconos y Cursores Encuestas
Noticias/Artículos Diccionario Preguntas/Respuestas Contactar
PDFs de programación

Copyright © 2000-2023 Interactive Programmers Community - Todos los derechos reservados


Aviso legal - Política de privacidad - Política de cookies

https://www.lawebdelprogramador.com/foros/Visual-Basic/480911-Variables-dinamicas.html 9/9

También podría gustarte