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

crear variables dinamicamente

Estas en el tema de crear variables dinamicamente en el foro de Visual Basic clásico en Foros del Web. Wenas a todos, nesecito crear 30 arrays de bytes, para empezar declararlo asi Dim Arreglo1(25) as byte, Arreglo2(25) as byte, Arreglo3(25) as byte, etc... mi ...
  #1 (permalink)  
Antiguo 13/07/2011, 12:31
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 13 años, 5 meses
Puntos: 0
crear variables dinamicamente

Wenas a todos, nesecito crear 30 arrays de bytes, para empezar declararlo asi

Dim Arreglo1(25) as byte, Arreglo2(25) as byte, Arreglo3(25) as byte, etc...

mi pregunta es si existe alguna manera de crearlos dinamicamente y no tener que estar escribiendo ya que lo utilizare en varias ocaciones, probe con for next pero no tuve resultados, alguien que me de una ayuda gracias de antemano
  #2 (permalink)  
Antiguo 13/07/2011, 12:37
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: crear variables dinamicamente

alguna forma o funcion para esta tarea?
  #3 (permalink)  
Antiguo 13/07/2011, 17:53
Avatar de Vanchi
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: Io voy donde vo' vai... Ca'eza
Mensajes: 1.111
Antigüedad: 17 años, 3 meses
Puntos: 138
Respuesta: crear variables dinamicamente

Cita:
Iniciado por Pegano Ver Mensaje
Wenas a todos, nesecito crear 30 arrays de bytes, para empezar declararlo asi

Dim Arreglo1(25) as byte, Arreglo2(25) as byte, Arreglo3(25) as byte, etc...

mi pregunta es si existe alguna manera de crearlos dinamicamente y no tener que estar escribiendo ya que lo utilizare en varias ocaciones, probe con for next pero no tuve resultados, alguien que me de una ayuda gracias de antemano
Hola Pegano,

¿Es posible usar un arreglo bidimensional?
Dim Arreglo(25,25) As Byte

Si utilizás el control "MSScriptControl" allí podrás crear arreglos y funciones "dinamicamente" (en tiempo de ejecución).

Ahora... si es solo para "ahorrar escritura" lo que te aconsejo es que lo trabajes como cadena (con bucle for, tal cual habías dicho) y luego lo copias y pegas en el código...

Ej:
Código vb:
Ver original
  1. Dim Cad As String
  2. Dim i As Integer
  3. For i = 1 To 25
  4.    Cad = Cad & "Dim Arreglo" & i & "(25) As Byte" & vbNewLine
  5. Next
  6. Clipboard.Clear
  7. Clipboard.SetText (Cad)
(Esto te copiaría directamente todo en el portapapeles, por lo que solo basta pegarlo en el proyecto.

Saludos
__________________
Según recientes estudios científicos, los 3 más grandes descubrimientos de la humanidad son: El fuego, la rueda y la minifalda.
Yo personalmente no le encuentro mucha utilidad a los 2 primeros.
  #4 (permalink)  
Antiguo 13/07/2011, 20:03
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: crear variables dinamicamente

Cita:
Iniciado por Vanchi Ver Mensaje
Hola Pegano,

¿Es posible usar un arreglo bidimensional?
Dim Arreglo(25,25) As Byte

Si utilizás el control "MSScriptControl" allí podrás crear arreglos y funciones "dinamicamente" (en tiempo de ejecución).

Ahora... si es solo para "ahorrar escritura" lo que te aconsejo es que lo trabajes como cadena (con bucle for, tal cual habías dicho) y luego lo copias y pegas en el código...

Ej:
Código vb:
Ver original
  1. Dim Cad As String
  2. Dim i As Integer
  3. For i = 1 To 25
  4.    Cad = Cad & "Dim Arreglo" & i & "(25) As Byte" & vbNewLine
  5. Next
  6. Clipboard.Clear
  7. Clipboard.SetText (Cad)
(Esto te copiaría directamente todo en el portapapeles, por lo que solo basta pegarlo en el proyecto.

Saludos
gracias vanchi, ahora hare varias operaciones con los arreglos convirtiendolos a string y asignarles a un arreglo de textbox entre otras cosas

Text1(1).Text = Arreglo1(25)
Text1(2).Text = Arreglo2(25)
Text1(3).Text = Arreglo3(25)
.......
Text1(30).Text = Arreglo30(25)

alguna maneras de recorrerlos mediante for next , ya que el textbox se puede hacer por su index pero en el caso del arreglo como seria, o definitivamente tiene que ser escrito,gracias de antemano
  #5 (permalink)  
Antiguo 13/07/2011, 20:46
Avatar de Vanchi
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: Io voy donde vo' vai... Ca'eza
Mensajes: 1.111
Antigüedad: 17 años, 3 meses
Puntos: 138
Respuesta: crear variables dinamicamente

Cita:
Iniciado por Pegano Ver Mensaje

Text1(1).Text = Arreglo1(25)
Text1(2).Text = Arreglo2(25)
Text1(3).Text = Arreglo3(25)
.......
Text1(30).Text = Arreglo30(25)
Hola Pegano,

No respondiste si puede usarse una matriz bidimensional... Para lo que mostrás hasta acá te vendría de lujos para recorrerlo con un bucle for.

Código vb:
Ver original
  1. Text1(i).Text = Arreglo(i, 25)

Saludos
__________________
Según recientes estudios científicos, los 3 más grandes descubrimientos de la humanidad son: El fuego, la rueda y la minifalda.
Yo personalmente no le encuentro mucha utilidad a los 2 primeros.
  #6 (permalink)  
Antiguo 13/07/2011, 21:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: crear variables dinamicamente

Cita:
Iniciado por Vanchi Ver Mensaje
Hola Pegano,

No respondiste si puede usarse una matriz bidimensional... Para lo que mostrás hasta acá te vendría de lujos para recorrerlo con un bucle for.

Código vb:
Ver original
  1. Text1(i).Text = Arreglo(i, 25)

Saludos
si Vanchi disculpa se me olvido pero la verdad no puedo usar una bidimencional por que la funcion no los acepta por lo que tengo que tenerlo por separado, como haria para recorrer variables :
Código vb:
Ver original
  1. Text1(1).Text = Arreglo1(25)
  2. Text1(2).Text = Arreglo2(25)
  3. Text1(3).Text = Arreglo3(25)
  4. .......
  5. Text1(30).Text = Arreglo30(25)

Código vb:
Ver original
  1. Text1(i).Text = Arregloi(25)
de alguna manera rrecorrer todos los arreglos de 1 al 30
  #7 (permalink)  
Antiguo 14/07/2011, 17:31
Avatar de Vanchi
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: Io voy donde vo' vai... Ca'eza
Mensajes: 1.111
Antigüedad: 17 años, 3 meses
Puntos: 138
Respuesta: crear variables dinamicamente

Cita:
Iniciado por Pegano Ver Mensaje
si Vanchi disculpa se me olvido pero la verdad no puedo usar una bidimencional por que la funcion no los acepta por lo que tengo que tenerlo por separado, como haria para recorrer variables :
Código vb:
Ver original
  1. Text1(1).Text = Arreglo1(25)
  2. Text1(2).Text = Arreglo2(25)
  3. Text1(3).Text = Arreglo3(25)
  4. .......
  5. Text1(30).Text = Arreglo30(25)

Código vb:
Ver original
  1. Text1(i).Text = Arregloi(25)
de alguna manera rrecorrer todos los arreglos de 1 al 30
Hola Pegano,

Vamos por partes...

1º La respuesta global: No, no se me ocurre como hacer esto
Código vb:
Ver original
  1. Text1(i).Text = Arregloi(25)

Ahora vamos a la segunda parte.

Cita:
no puedo usar una bidimencional por que la funcion no los acepta
Tal vez acá SI pueda ayudarte.

¿El motivo por el cual no se puede usar las matrices bidimensionales es porque no las podés pasar a las funciones?

Si es por esto, la respuesta es simple... Solo declará dinámica el parámetro de la función y listo!

Mirá este ejemplo simple:
Código vb:
Ver original
  1. Private Sub Command1_Click()
  2. Dim V(25, 25) As Byte
  3. MsgBox (Algo(V))
  4. End Sub
  5.  
  6. Private Function Algo(Matriz() As Byte) As Integer
  7. Algo = UBound(Matriz, 1) + UBound(Matriz, 2)
  8. End Function

En ese ejemplo pasé una matriz estática bidimensional como parámetro de una matriz dinámica.

Saludos.
__________________
Según recientes estudios científicos, los 3 más grandes descubrimientos de la humanidad son: El fuego, la rueda y la minifalda.
Yo personalmente no le encuentro mucha utilidad a los 2 primeros.
  #8 (permalink)  
Antiguo 15/07/2011, 09:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: crear variables dinamicamente

Cita:
Iniciado por Vanchi Ver Mensaje
Hola Pegano,

Vamos por partes...

1º La respuesta global: No, no se me ocurre como hacer esto
Código vb:
Ver original
  1. Text1(i).Text = Arregloi(25)

Ahora vamos a la segunda parte.



Tal vez acá SI pueda ayudarte.

¿El motivo por el cual no se puede usar las matrices bidimensionales es porque no las podés pasar a las funciones?

Si es por esto, la respuesta es simple... Solo declará dinámica el parámetro de la función y listo!

Mirá este ejemplo simple:
Código vb:
Ver original
  1. Private Sub Command1_Click()
  2. Dim V(25, 25) As Byte
  3. MsgBox (Algo(V))
  4. End Sub
  5.  
  6. Private Function Algo(Matriz() As Byte) As Integer
  7. Algo = UBound(Matriz, 1) + UBound(Matriz, 2)
  8. End Function

En ese ejemplo pasé una matriz estática bidimensional como parámetro de una matriz dinámica.

Saludos.
Gracias nuevamente amigo Vanchi

Etiquetas: dinamicamente, variables
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:18.