elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [Duda] No me sale utilizar procedimientos con vectores
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] No me sale utilizar procedimientos con vectores  (Leído 2,015 veces)
Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
[Duda] No me sale utilizar procedimientos con vectores
« en: 23 Junio 2010, 20:36 pm »

Hola chicos, bueno voy a tratar de explicarles lo más breve y directo posible porque recién estoy aprendiendo como usar los procedimientos con vectores y el problema es el siguiente:

Tengo un formulario con una matriz de controles de 3 texbox's y 3 label's donde el usuario ingresa los nombres de 3 personas, y otra matriz de contrles de 3 textbox's y 3 label's también donde el usuario ingresa las edades de esas 3 personas

Lo que yo quiero hacer es, cuando el usuario apreta el botón asignar llame al procedimiento CargarDatos que ingresará por un lado la primer matriz de controles en un Vector que será llamado por parametros que lo cargará con los nombres, y en otro vector por separado las edades que también las recibirá por parametro, luego simpremente escribir en el cmdAsignar_Click la llamada el procedimiento CargarDatos y que cargue todo a los 2 vectores y los muestre por pantalla

Una imagen del form:



Espero que me puedan ayudar, se que es algo sencillo pero no termino de entender como hacerlo y usar los vectores por parametros para la carga, sin procedimiento lo hago de esta manera:

Código
  1. Private Sub cmdCargar_Click()
  2.  
  3. Dim vectorNombre(3) As String, vectorEdad(3) As Byte
  4.  
  5. Static x As Byte
  6.  
  7. 'Carga de datos a los vectores
  8.  
  9. For x = 0 To 2
  10.  
  11.    vectorNombre(x) = txtNombre(x).Text
  12.    vectorEdad(x) = txtEdad(x).Text
  13.  
  14. Next x
  15.  
  16. End Sub

Pero yo lo quiero hacer con procedimientos como dije ya que eso me tomarán en el colegio

Muchas gracias y espero alguien se digne a ayudarme :xD

PD: Según dijo el prof los vectores por parametros se pasan ByRef y todos los que no sean vectores Byval, por si acaso


En línea

Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Duda] No me sale utilizar procedimientos con vectores
« Respuesta #1 en: 23 Junio 2010, 20:54 pm »

Ya está chicos  ya me salió, me quedó una duda si me la pueden responder y dejo la solución por si algún novato en ese tema no le sale o no lo sabe

Botón cargar:
Código
  1. Private Sub CargarVector(ByRef vectorN() As String, ByRef vectorE() As Byte)
  2.  
  3. Static x As Byte
  4.  
  5. For x = 0 To 2
  6.  
  7.    vectorN(x) = txtNombre(x).Text
  8.    vectorE(x) = txtEdad(x).Text
  9.  
  10. Next x
  11.  
  12.  
  13. End Sub
  14.  

Procedimiento Cargar:
Código
  1. Private Sub CargarVector(ByRef vectorN() As String, ByRef vectorE() As Byte)
  2.  
  3. Static x As Byte
  4.  
  5. For x = 0 To 2
  6.  
  7.    vectorN(x) = txtNombre(x).Text
  8.    vectorE(x) = txtEdad(x).Text
  9.  
  10. Next x
  11.  
  12.  
  13. End Sub

Procedimiento MostrarVector:
Código
  1. Private Sub MostrarVector(ByRef vectorN() As String, ByRef vectorE() As Byte)
  2.  
  3. Static x As Byte
  4.  
  5. For x = 0 To 2
  6.    Print vectorN(x)
  7.    Print vectorE(x)
  8. Next x
  9.  
  10. End Sub

Yupi!! Me quedó una duda:

En el procedimiento Private Sub cmdCargar_Click() cuando le paso los parametros a los procedimientos, los vectores van con parentesis vacios "()" o con los parentesis y la cantidad de espacios o lugares que contiene este? "(3)" en este caso

Muchas gracias


« Última modificación: 24 Junio 2010, 00:07 am por Dreamaker » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Duda] No me sale utilizar procedimientos con vectores
« Respuesta #2 en: 23 Junio 2010, 21:34 pm »


bien mira el proceso de arriba esta mal 0 y 2 jamas deberian ser estaticos y en el proceso si se meten vectores sin inicializar es decir Dim Vector() as tipo  causara un error al igual que si las dimenciones son erroneas!¡.

Código
  1.  
  2. Private Function CargarVector(ByRef vectorN() As String, ByRef vectorE() As Byte) As Boolean
  3. Dim x       As Integer
  4. Dim Ini     As Long                                                 '   //  Lbound() devuelve tipo Long.
  5. Dim Fin     As Long                                                 '   //  Ubound() devuelve tipo Long.
  6.  
  7.    If Not ((Not vectorN) = -1) And Not ((Not vectorE) = -1) Then   '   //  Que esten inicialisados (Evitamos On Error Resume Next, On Resume Goto ...).
  8.        Ini = LBound(vectorN)                                       '   //  Un peque respaldo para no usar los procesos muchas veces!¡.
  9.        Fin = UBound(vectorN)                                       '   //  Un peque respaldo para no usar los procesos muchas veces!¡.
  10.        CargarVector = Fin = UBound(vectorE) And _
  11.                       Ini = LBound(vectorE)                        '   //  Si son de la misma longitud.
  12.        If CargarVector Then
  13.            For x = Ini To Fin                                      '   //  Recorremos utilizando las variables Ini y Fin.
  14.                vectorN(x) = txtNombre(x).Text                      '   //  Esto no me gusta pero ni que (Deverian de pasarse).
  15.                vectorE(x) = txtEdad(x).Text                        '   //  Esto no me gusta pero ni que (Deverian de pasarse).
  16.            Next
  17.        End If
  18.    End If
  19. End Function
  20.  
  21.  

para eso de los vectores mejor usa el evento de los textbox LostFocus!¡.

Código
  1.  
  2. option explicit
  3.  
  4. Dim VectorNombres()         As String
  5. Dim VectorEdades()          As Integer
  6.  
  7. Private Sub Command1_Click()
  8.    Dim i As Long
  9.    For i = LBound(VectorNombres) To UBound(VectorNombres)
  10.        Debug.Print " Edad: "; VectorEdades(i); " Nombre: "; VectorNombres(i)
  11.    Next
  12. End Sub
  13.  
  14. Private Sub Form_Load()
  15.    ReDim VectorNombres(txtNombre.LBound To txtNombre.UBound)
  16.    ReDim VectorEdades(txtNombre.LBound To txtNombre.UBound)
  17. End Sub
  18. Private Sub Text1_LostFocus(Index As Integer)
  19.    VectorNombres(Index) = txtNombre(Index).Text
  20.    VectorEdades(Index) = Val(txtEdad(Index).Text)
  21. End Sub
  22.  
  23.  
En línea

The Dark Shadow is my passion.
Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Duda] No me sale utilizar procedimientos con vectores
« Respuesta #3 en: 23 Junio 2010, 23:35 pm »

Utilizo procedimientos y no funciones ya que los procedimientos me cargarán los datos y las funciones se utilizan para devolver algo, en este caso no necesito que devuelvan nada sino sólo que los carguen, y no se por qué dices que está mal que X sea estática ya que cuando apreto el boton de Cargar para que no se pierda el valor que tenía la X en el for por ejemplo, le pongo que sea estática para que lo guarde :huh:

Entiendo parcialmente tu código, sólo utilizamos las funciones básicas para crear nuestras propias funciones, nada de Lbound y eso (que sé que es válido)

Osea no entiendo específicamente el error que me quisiste remarcar ;) De todas maneras el código como lo probé funciona..
« Última modificación: 23 Junio 2010, 23:36 pm por Dreamaker » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Duda] No me sale utilizar procedimientos con vectores
« Respuesta #4 en: 24 Junio 2010, 00:11 am »

static es usada cuando y solo cuando!¡.

por decir asi

Código
  1.  
  2. Public Sub Sumar()
  3. Static a As Long
  4. a = a + 1
  5. Debug.Print a
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9.    Call Sumar
  10.    Call Sumar
  11.    Call Sumar
  12.    Call Sumar
  13.    Call Sumar
  14. End Sub
  15.  
  16.  
  17.  

en total en la ventana inmediato a valdra
Código:
1
2
3
4
5

en cambio con si enlugar de static usas dim siempre sera

Código:
1
1
1
1
1

Ahora en un for Es TONTO usar Static ya que static preservera un valor AUN despues de hacer terminado su proceso es decir SEGUIRA EN MEMORIA!¡, DIm por otro lado solo es una variable Temporal-Local del proceso.

y DIm es mejor para un For-Next

MSDN declaracion con STATIC http://msdn.microsoft.com/es-es/library/z2cty7t8(VS.80).aspx
MSDN declaracion con Dim http://msdn.microsoft.com/en-us/library/7ee5a7s1(VS.80).aspx

Ahora yo use una funcion ya que (Me Cito a mi mismo en el Post Anterior)!¡


bien mira el proceso de arriba esta mal 0 y 2 jamas deberian ser estaticos y en el proceso si se meten vectores sin inicializar es decir Dim Vector() as tipo  causara un error al igual que si las dimenciones son erroneas!¡.

...


En castellano: lo puse como funcion ya que si es un proceso, ya que me gustaria saber si realmente se ha procesado la informacion asi que un sub no valdria en especial cuando tal vez las dimenciones de ampos Array's en los parametros NO SON de dimenciones indenticas o NO ESTAN INICIALIZADAS!¡.

Ahora la funcion devuelve true si todo a salido correctamente y false si hay algo erroneo en los parametros/proceso!¡.

Dulce Infierno Lunar!¡.
« Última modificación: 24 Junio 2010, 00:16 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Dreamaker

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Duda] No me sale utilizar procedimientos con vectores
« Respuesta #5 en: 24 Junio 2010, 00:22 am »

Muchas gracias BlackZeroX▓▓▒▒░░ ahora si está claro ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Operacion Suma (Vectores) !Duda! « 1 2 3 »
Programación C/C++
Fire544 20 10,478 Último mensaje 13 Julio 2012, 08:15 am
por Fire544
Duda con suma de vectores !Resuelto!
Programación C/C++
Fire544 0 1,574 Último mensaje 27 Julio 2012, 15:25 pm
por Fire544
Duda sobre vectores!
Programación C/C++
Sr_Malweriks 5 1,922 Último mensaje 4 Enero 2016, 23:11 pm
por Sr_Malweriks
duda procedimientos lmacenados
Bases de Datos
arts 1 1,995 Último mensaje 10 Febrero 2016, 21:20 pm
por BlackM4ster
Duda con lenguaje PLSQL en procedimientos/funciones
Bases de Datos
jose_ank 1 1,853 Último mensaje 14 Marzo 2018, 01:49 am
por Carloswaldo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines