** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Visual Basic Clásico (VB3...VB6)
  Mensajes nuevos Mensajes nuevos RSS - Pasar varios tipos de datos como argumento
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPasar varios tipos de datos como argumento

 Responder Responder
Autor
Mensaje
Medardo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2005
Localización: Cuba
Estado: Sin conexión
Puntos: 1987
Enlace directo a este mensaje Tema: Pasar varios tipos de datos como argumento
    Enviado: 05/Febrero/2016 a las 17:02
Hola
Tengo lo siguiente:

Tres tipos de datos definidos por el usuario:

Public Type typ1
.
.
End Type
Public Type typ2
.
.
End Type
Public Type typ3
.
.
End Type

' Declaración de matrices de datos
Public Array_tab1()     As typ1
Public Array_tab2()     As typ2
Public Array_tab3()     As typ3

'un procedimiento para cargar en un array los registros ordenados de un archivo de texto
Public Sub QuickSort(Array_tab1() As typ1, Limite_Inferior As Long, Limite_Superior As Long, sNombreFichero As String)
.
.
End Sub

Como podrán observar, el procedimiento QuickSort en su primer argumento se le pasa un array con el tipo de datos definido por el usuario. Sin embargo, yo necesito pasar cada uno de los array con sus tipos de datos. Para no hacer un procedimiento para cada tipo de datos (typ1, typ2 y typ3), ¿cómo lo puedo declarar para en el mismo procedimiento utilizar los tres tipos de datos?

Gracias

Saludos
Desde La Habana, Cuba
Medardo
Arriba
Medardo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2005
Localización: Cuba
Estado: Sin conexión
Puntos: 1987
Enlace directo a este mensaje Enviado: 08/Febrero/2016 a las 17:06
Hola

Todo parece indicar que no me supe explicar bien. Manteniendo lo que ya puse anteriormente:
Para llamar al procedimiento público, hago lo siguiente:
Call QuickSort(Array_tab1, LBound(Array_tab1), UBound(Array_tab1), "" & sTablas(iCiclo) & "")
En esta llamada al procedimiento no hay problemas, porque al hacer referencia a cada array, cambio el nombre en cada llamada, por ejemplo:
Call QuickSort(Array_tab2, LBound(Array_tab2), UBound(Array_tab2), "" & sTablas(iCiclo) & "")
Call QuickSort(Array_tab3, LBound(Array_tab3), UBound(Array_tab3), "" & sTablas(iCiclo) & "")

Pero, cuando haga la llamada del Array_tab2 y Array_tab3, el procedimiento público al cual estoy llamando, tiene solo establecido Array_tab1() As typ1.
Es decir, cómo puedo hacer en el procedimiento público para, sin cambiar el primer argumento, pueda hacer la llamada para los tres array.

Espero haberme explicado mejor.
Saludos
Desde La Habana, Cuba
Medardo
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Prisión Brieva
Estado: Sin conexión
Puntos: 3228
Enlace directo a este mensaje Enviado: 08/Febrero/2016 a las 17:58
Buenas Medardo:

Creo que lo que quieres no es posible tal cual, puesto que al definir la función en su creación necesitas pasarle el tipo de parámetro (Typ1, Typ2 o Typ3).

No me he parado a pensarlo con detalle, pero a lo mejor se puede solucionar usando clases en lugar de tipos... pero solo es una elucubración rápida.



Un saludo.

Luis
Those are my principles, and if you don't like them... well, I have others. Groucho Marx
Arriba
Medardo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2005
Localización: Cuba
Estado: Sin conexión
Puntos: 1987
Enlace directo a este mensaje Enviado: 09/Febrero/2016 a las 20:14
Hola Luis
Las clases que he necesitado en mis programas ya han sido elaboradas. Sé que su estudio y dominio es algo complicado, pero ahora no tengo tiempo para ello. Así que, ya veré cómo me las arreglo por ahora.
Gracias por contestar.

Pueden cerrar el hilo.
Saludos
Desde La Habana, Cuba
Medardo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable