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

VB6 - Devolver dos valores en una función

Estas en el tema de VB6 - Devolver dos valores en una función en el foro de Visual Basic clásico en Foros del Web. Hola amigos!!! Necesito una función que me devuelva dos variables o un arreglo. Mi función recibe un string , como este "Apellido1 Apellido2" y necesito ...
  #1 (permalink)  
Antiguo 02/12/2008, 08:25
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
VB6 - Devolver dos valores en una función

Hola amigos!!!
Necesito una función que me devuelva dos variables o un arreglo.
Mi función recibe un string , como este "Apellido1 Apellido2" y necesito devolver en una variable apellido1 y en otra apellido2, cómo lo hago?

Gracias!!!
  #2 (permalink)  
Antiguo 02/12/2008, 08:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: VB6 - Devolver dos valores en una función

Puedes devolver un array con varios valores. O de otra forma no tan elegante es pasar un parámetro ByRef y modificarlo directamente dentro de la función.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 02/12/2008, 08:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB6 - Devolver dos valores en una función

podrías poneme algun ejemplo? ,asi lo veré mas claro.
El parámtro que estoy pasando es el campo de una tabla.


Gracias

Última edición por Laufwerk; 02/12/2008 a las 08:58
  #4 (permalink)  
Antiguo 02/12/2008, 09:30
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: VB6 - Devolver dos valores en una función

Por ejemplo:
Código vb:
Ver original
  1. Function fArray(ByVal param As String)
  2. ' Primera forma, devolviendo directamente un array
  3. Dim vReturn(1) As String
  4. vReturn(0) = "primer valor"
  5. vReturn(1) = "segundo valor"
  6. fArray = vReturn
  7. End Function
  8.  
  9. Sub fArray2(ByVal param As String, vReturn() As String)
  10. 'Segunda forma, tomando como parámetro ByRef un array y modificarlo
  11. vReturn(0) = "primer valor"
  12. vReturn(1) = "segundo valor"
  13. End Sub
Y para usarlo sería:
Código vb:
Ver original
  1. 'Primera forma
  2. Dim vReturn() As String
  3. vReturn = fArray("param")
  4. MsgBox vReturn(0)
  5. MsgBox vReturn(1)
  6.  
  7. 'Segunda forma
  8. Dim vReturn2(1) As String
  9. fArray2 "param", vReturn2
  10. MsgBox vReturn2(0)
  11. MsgBox vReturn2(1)
Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 02/12/2008, 09:54
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB6 - Devolver dos valores en una función

mil gracias!!!!
  #6 (permalink)  
Antiguo 02/12/2008, 10:01
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB6 - Devolver dos valores en una función

h eprobado con la primera forma y me dice que no coinciden los tipos, te pongo aqui mi codigo

Código:
Function divApellido(ByVal surnames As String)
    Dim apellidos(1), valor() As String
    valor = Split(surnames, " ")
    apellidos(0) = valor(0)
    apellidos(1) = valor(1)
    divApellido = apellidos
End Function
y asi como la llamo

Código:
        
Dim apellidos() As String
       apellidos = divApellido(rsPeticions.Fields("papell_pac").Value)
       
       MsgBox apellidos(0)
       MsgBox apellidos(1)
Gracias!!!
  #7 (permalink)  
Antiguo 02/12/2008, 10:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: VB6 - Devolver dos valores en una función

Es que apellidos(1) en este caso se declara como Variant, por lo que al tratar de devolverlo y guardarlo en un array String dice que no coinciden los tipos. Declara así:
Código vb:
Ver original
  1. Dim apellidos(1) As String, valor() As String
Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 10:16.