https://foro.gambas-es.org/viewtopic.php?f=1&t=6052
-----------------------------------
v3ctor
Miercoles, 14 Diciembre 2016, 13:54

El Poder De Una Subrutina Que Devuelve Variant[]
-----------------------------------
buenas

que opinión les merece este código? alguna vez usaron algo parecido?

[code linenumbers=false syntax=gambas]Public Sub btnGuardar_Click()
 Dim Resultado As New Variant[]
 
 Resultado = subR1.GuardarContenidoListaEnArchivo(lstBFrases.List, txtFiltro.Text, FMain.TemaEstudio)
 
  If Resultado[0] Then
    Balloon.Info("Se guardo el archivo correctamente!" & gb.NewLine & "Carpeta: " & File.Dir(Resultado[1]) & gb.NewLine &
    "Archivo: " & File.Name(Resultado[1]), btnGuardar)
  Else
    Balloon.Info("Ocurrio un error", btnGuardar)
  Endif
  Wait 0.1
  
End

'subR1
Public Sub GuardarContenidoListaEnArchivo(lista As String[], name As String, dir As String) As Variant[]
  Dim texto, fecha, NombreFinal As String
  Dim textoArchivo As String
  Dim nombre As String
  Dim Retorno As New Variant[]
  
  fecha = Replace(Replace(Replace(Replace(CStr(Now), ":", "-"), "/", "-"), ".", "_"), " ", "_")
  Print "fecha=" & fecha
  
  nombre = Replace(CrearListas.SacarCaracteres(name, False), " ", "_")
  
  For Each texto In lista
     textoArchivo &= texto & gb.NewLine
  Next
  
  NombreFinal = dir & "/" & nombre & "_" & fecha & ".txt"
  
  
  Print NombreFinal
  File.Save(NombreFinal, textoArchivo)
  Wait 0.2
  
  If Exist(NombreFinal) Then
    Retorno.Add(True)
    Retorno.Add(NombreFinal)
    Return Retorno
  Else
    Retorno.Add(False)
    Retorno.Add(NombreFinal)
    Return Retorno
  Endif[/code]


-----------------------------------
jsbsan
Jueves, 15 Diciembre 2016, 08:24

Re: El Poder De Una Subrutina Que Devuelve Variant[]
-----------------------------------
V3ctor:

Si, he usado funciones que devuelven datos del tipo variant. Aqui lo importante para "reutializarla" (o luego ampliarla), es indicar en comentarios, cual es la estructura de datos que devuelve, por ejemplo en la tuya, siempre devuelve dos pares de datos:
-Uno true o false
-Otro el nombre del fichero.

Si lo que devuelve es más complicado, lo suyo es usar una estructura de datos, o una colección, o incluso clases... todo esto te lo admite el tipo variant[]


