Clipper/FiveWin - Ayuda con el DO

 
Vista:

Ayuda con el DO

Publicado por Roberto ( Chile ) (2 intervenciones) el 29/08/2001 08:01:26

Hola, necesito saber como devuelvo parametros de un procedimiento llamado con Do, o sea un procedimiento escrito
en un archivo .prg aparte.

Necesito que el procedimiento me devuelva un valor al programa principal y nose como hacerlo.

Ojalá me puedan ayudar, GRACIAS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con el DO

Publicado por skaigualker (210 intervenciones) el 29/08/2001 09:05:05
Por definicion de los lenguajes funcionales, los procedimientos no pueden devolver valores, si lo hacen las funciones. Para hacer que un procedimiento devuelva algun dato tienes que utilizar variables publicas, y modificarlas en tu procedimiento. De ese modo los cambios que realices en estas variables estaran visibles en cualquier parte de tu programa, y estas sujeta a efectos co-laterales no deseados.

Si necesitas que trabaje con variables locales y devolver datos deberas utilizar funciones. El trabajo con funciones es una muy buena tecnica de programacion. Deberias intentar no utilizar nunca procedimiento y siempre funciones que trabajen con variables locales y devuelvan los datos necesarios. De ese modo, y una vez que la has probado y te funciona, siempre podras re-utilizar tu funcion en otro programas sin necesidad de precuparte de nada. Solo necesitas saber que datos entran y cuales salen, el resto de lo que pasa en la funcion no te preocupa y no influye en tu programa.

Saludos.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con el DO

Publicado por Raúl Noguera (95 intervenciones) el 29/08/2001 14:48:39
Amigo Roberto, lo que te escribio el amigo skaigualker es muy cierto trata en lo sucesivo de crea funciones, pero tambien con procedimiento puedes simular funccion ejemplo:

// PROGRAMA PRINCIPAL
PROG1.PRG
cls
....
..
..
DO PROG2 // aqui llamas a tu programa
// sustituye la linea de arriba por
XVALOR:=PROG2()
// la variable XVALOR contiene le valor devuelto por PROG2
RETURN

// PROGRAMA SECUNDARIO
PROG2.PRG
..tu rutinas
..
.
..
RETURN .t. // aqui retornas el valor que tu quieras


espero haberte ayudado...

Raúl Noguera
Desde Venezuela, el pais de las mujeres mas Bellas del Mundo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con el DO

Publicado por Victor Manuel Tomas Diaz (93 intervenciones) el 29/08/2001 17:20:36
Roberto :

Una pequeño comentario , para que no tengar que declarar variables publicas en tu programa, te recomiendo que devuelvas un arreglo con todos los valores que vayas a usar, por ejemplo

FUNCTION MAIN()
LOCAL aDatos
..
..
aDatos := PROG2() // aqui llamas a tu programa
?aDatos[1] // 5
?aDatos[2] // "Hola"
?aDatos[3] // Date()
?aDatos[4] // .T.

..
..
..
RETURN

PROG2.PRG
LOCAL aDatos := Array(4)
aDatos[1] := 5
aDatos[2] := "Hola"
aDatos[3] := Date()
aDatos[4] := .T.
..
..
..
RETURN ( aDatos )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar