Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Como Hacer Para Que Una Funcion Retorne Dos Variables
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Hacer Para Que Una Funcion Retorne Dos Variables 
 
¿Hay alguna forma de que una función retorne dos variables en vez de una?

Por ejemplo estoy haciendo una rutina que lee un fichero de texto tipo .config [frutas] manzana pera higo [fecula] arróz fideos ... y quiero que la funcion que lee el fichero de texto devuelva dos matrices mxFrutas y mxFecula.

Saludos
 



 
última edición por tincho el Jueves, 04 Febrero 2016, 21:34; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Para Que Una Funcion Retorne Dos Variables 
 
Tincho:

Puedes usar arrays del tipo variant o colection:

Algo asi como:

Public function devolucion() as colection[]
dim arrayColection as new colection[]
.....
.....
return arrayColection
end


Mirate esto:
http://cursogambas.blogspot.com.es/2012/08/colecciones.html
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Hacer Para Que Una Funcion Retorne Dos Variables 
 
tincho escribió: [Ver mensaje]
.... devuelva dos matrices mxFrutas y mxFecula.

Entonces tú quieres que los dos array sean devueltos bien distintos.
Yo propondría un paso de parametros por direccion:

Public Sub Main()

  Dim frutas, fecula As New String[]
  Dim fr, fe As String

    Ad_Functionem(frutas, fecula)
    
    For Each fr In frutas
      Print fr
    Next
    Print
    For Each fe In fecula
      Print fe
    Next

End


Private Function Ad_Functionem(mxFrutas As String[], mxFecula As String[])
  
    With mxFrutas
      .Push("manzana")
      .Push("pera")
      .Push("higo")
    End With

    With mxFecula
      .Push("arróz")
      .Push("fideos")
    End With
  
End




Pero... si no te gusta, podrías usar un array de array. En este caso, pero, de facto la función devuelve solo un array (...que contiene los datos de dos array).  
Es decir:
Public Sub Main()

  Dim frutas, fecula As New String[]
  Dim fr_fe As String[][]

    fr_fe = Ad_Functionem(frutas, fecula)
    
    Print fr_fe[0][0]
    Print fr_fe[0][1]
    Print fr_fe[0][2]
    Print
    Print fr_fe[1][0]
    Print fr_fe[1][1]

End


Private Function Ad_Functionem(mxFrutas As String[], mxFecula As String[]) As String[][]
  
  Dim FruFec As New String[][]

   With mxFrutas
     .Push("manzana")
     .Push("pera")
     .Push("higo")
   End With

   With mxFecula
     .Push("arróz")
     .Push("fideos")
   End With
    
    FruFec = [mxFrutas, mxFecula]

   Return FruFec

End

 



 
última edición por vuott el Viernes, 05 Febrero 2016, 00:31; editado 4 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
9.00 9 9 1
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Hacer Para Enlasar Dos Combobox Y Un ... miguel perez Bases de Datos 1 Jueves, 05 Diciembre 2013, 19:53 Ver último mensaje
shordi
No hay nuevos mensajes Mint: Como Hacer Para Que No Desaparezcan ... tercoIDE Mundo Linux 12 Jueves, 07 Septiembre 2017, 19:27 Ver último mensaje
tincho
No hay nuevos mensajes En Gambas No Existen Variables Globales Co... gambafeliz General 9 Jueves, 18 Julio 2019, 18:05 Ver último mensaje
gambafeliz
No hay nuevos mensajes Como Hacer Que Un Formulario Retorne [SOLU... tincho Aplicaciones/Fragmentos de Código 33 Miercoles, 12 Febrero 2020, 15:42 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario