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

devolver datos de una funcion

Estas en el tema de devolver datos de una funcion en el foro de Visual Basic clásico en Foros del Web. hola compis! acabo de empezar programar con vb y x eso me he registrado en este foro para que me podais ayudar con mis dudas ...
  #1 (permalink)  
Antiguo 04/11/2008, 07:11
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
Mensaje devolver datos de una funcion

hola compis!
acabo de empezar programar con vb y x eso me he registrado en este foro para que me podais ayudar con mis dudas de principiante.
he creado una simple funcion y quiero devolver al programa principal una variante de tipo string y un array de tipo variant. he leido algo d q debo usar return+el nombre de las variables.pero tb he leido q ese return tiene q ir acompañado de un go sub.para q me sirve el go sub??y como puedo sacar las variables de la funcion???
gracias! un saludo!
  #2 (permalink)  
Antiguo 04/11/2008, 07:20
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: devolver datos de una funcion

¿Con qué versión de Visual Basic estás trabajando?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 04/11/2008, 07:28
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: devolver datos de una funcion

estoy desde el editor de vb del excel 03. kiero pasar visualizar unos datos de solidworks en excel. para ello he creado una funcion dnd se cargan los nombres del sw pero no se como los puedo llamar para usarlo en el programa general.
  #4 (permalink)  
Antiguo 04/11/2008, 07:31
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: devolver datos de una funcion

En ese caso no se usa Return, básicamente es:
Código vb:
Ver original
  1. Function MiFuncion() As String
  2.    MiFuncion = "Valor Devuelto"
  3. End Function
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 04/11/2008, 07:42
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: devolver datos de una funcion

gracias, pero si kiero devolver un string y una matriz desde una misma funcion?seria posible o tendria q crear dos funciones diferentes?
  #6 (permalink)  
Antiguo 04/11/2008, 07:47
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: devolver datos de una funcion

Lo que puedes hacer es pasar como parámetro ByRef la matriz en la que quieres devolver los datos y modificarlo directamente dentro de la función.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 04/11/2008, 07:57
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: devolver datos de una funcion

te importaria ponerme un ejemplo, sq acabo de empezar y todavia estoy muy verde...
gracias
  #8 (permalink)  
Antiguo 04/11/2008, 08:05
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: devolver datos de una funcion

Ejemplo:
Código vb:
Ver original
  1. Dim vArray(0) As Integer
  2. ModifyArray vArray
  3. MsgBox vArray(0) 'Aquí saldrá un mensaje mostrando 50 ya que lo modificamos dentro del procedimiento
Código vb:
Ver original
  1. Sub ModifyArray(ByRef vArray() As Integer)
  2. vArray(0) = 50
  3. End Sub
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 04/11/2008, 08:12
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: devolver datos de una funcion

tengo otra duda. al declara el array tengo que poner es necesario poner su longitud (lo q pones entre parentesis). sq en mi caso esa longitud es desconocida.
y otra duda:cuando se una un array y cuando una matriz? es solo cuestion de espacio?
  #10 (permalink)  
Antiguo 04/11/2008, 08:15
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: devolver datos de una funcion

Si deseas hacer una matriz sin conocer el límite puedes poner:
Código vb:
Ver original
  1. Dim vArray() As Integer
Pero tienes que tener en cuenta que cada vez que vas a agregar un nuevo índice debes hacer un ReDim Preserve.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 04/11/2008, 08:56
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: devolver datos de una funcion

te importa si te mando el programilla para q me lo eches un vistazo, sq llevo todo el dia y me da mi errores.
gracias.
  #12 (permalink)  
Antiguo 04/11/2008, 09:14
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: devolver datos de una funcion

Puedo ayudarte si nos muestras los errores que te da.

O si quieres poner tu proyecto aquí quizás alguien que tenga algo de tiempo guste revisarlo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 04/11/2008, 09:32
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: devolver datos de una funcion

los datos q kiero sakar d esta funcion para luego visualizarlos en un excel son un array donde se van a guardar los nombres de las configuraciones de una pieza concreta de solidworks y el nombre donde se guarda el nombre de la pieza de solidworks.

'lo q viene a continuacion del sub modifyarray es para mandar esos datos al programa general, pero no se si es asi.
Sub ModifyArray(ByRef swCompArr() As Variant, nombre As String)

Dim swApp As Object
Dim Part As Object
Dim CnMgr As Object

'abre un doc y seleccina el configuration manager que es de donde kiero coger yo los datos
On Error Resume Next
Set swApp = GetObject("SldWorks\pieza1.sldprt")
Set Part = swApp.ActiveDoc
Set CnMgr = Part.ConfigurationManager

'con esto se supone que se guarda en la variable nombre el nombre de la pieza1, pero no lo se si es asi.
nombre = SldWorks.GetDocumentDependencies2(CnMgr)

ReDim swCompArr(0)
'se supone que esto cuenta las configuraciones que tiene la pieza, pero tanpoco se si es asi
nSelCount = CnMgr.GetSelectedObjectCount

'se guardan en un array todos los nombres de las configuraciones
For i = 1 To nSelCount
swCompArr(i) = SelMgr.GetConfigurationNames
Next

End Sub

soy principiante en esto por lo q cualquier cosa que me querais correjir, comentar,... bienvenida sea.
gracias!
  #14 (permalink)  
Antiguo 04/11/2008, 09:47
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: devolver datos de una funcion

Primero, quita el On Error Resume Next, así sabrás donde están los errores, uno de ellos es que el array no lo estás redefiniendo para añadir un nuevo elemento.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #15 (permalink)  
Antiguo 04/11/2008, 09:55
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: devolver datos de una funcion

sq uno de mis problemas es que no se como llamar a las diferentes configuraciones de una pieza de solidworks. En el API help me ponia esto, pero asi llamare a una configuracion, y las demas??

swCompArr(i) = SelMgr.GetConfigurationNames
  #16 (permalink)  
Antiguo 04/11/2008, 10:08
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: devolver datos de una funcion

Yo no uso "solidworks", así que infelizmente en eso que preguntas no puedo ayudarte.

Tal vez esa función devuelva directamente un array, pero habría que hacer las pruebas para saberlo.
__________________
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 17:30.