Power Builder - COMO PASAR Y DEVOLVER UN ARRAY A FUNCION

 
Vista:

COMO PASAR Y DEVOLVER UN ARRAY A FUNCION

Publicado por Molon (67 intervenciones) el 01/08/2003 09:56:53
Hola a todos, mi problema vino ante la necesidad de pasar un array a una funcion para que esta funcion la procesara y me devolviera el array.
No he encontrado la manera de hacerla en condiciones y la unica forma que me sale es la sgte que os comento y espero que me digais una mejor porque me parece muy "cutre". Ahi va:

a) Este codigo este en el evento click de un boton

int tabla[50]
any cosa
cosa=RealizaCarga(tabla)
tabla=cosa
CATCH (throwable e)
Messagebox("",e.text)
END TRY
MessageBox("","Okey --->" + String(tabla[50]))
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:COMO PASAR Y DEVOLVER UN ARRAY A FUNCION(2)

Publicado por mo (67 intervenciones) el 01/08/2003 10:03:26
Hola a todos, mi problema vino ante la necesidad de pasar un array a una funcion para que esta funcion la procesara y me devolviera el array.
No he encontrado la manera de hacerla en condiciones y la unica forma que me sale es la sgte que os comento y espero que me digais una mejor porque me parece muy "cutre". Ahi va:

a) Este codigo este en el evento click de un boton

int tabla[50]
any cosa
cosa=RealizaCarga(tabla) // paso la tabla y devuelvo un objeto any
tabla=cosa // asigno el any a la tabla
MessageBox("","Okey --->" + String(tabla[50]))

b) Codigo de funcion RealizaCarga
( realizacarga(integer tabla[]) returns any)
any cosa
int i
For i = 1 to 50
tabla[i]=i*2
next
cosa=tabla // asigno tabla a cosa que es el "any" que devolvere
Return cosa

Pues nada que haber como se hace de manera mas "fina" ya que a mi me parece esta demasiado cutre.
un saludo

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:COMO PASAR Y DEVOLVER UN ARRAY A FUNCION(2)

Publicado por Milson Cardona (613 intervenciones) el 01/08/2003 21:53:40
Un saludo especial desde COLOMBIA

para recibir como parametro un array solo basta que en nombre del ARGUMENTO le coloques corchetes.

definicion de la funcion

RETURN TYPE any
NOMBRE cualquiera

ARGUMENT TYPE integer (o el tipo de los datos del array)
ARGUMENT NAME nom_arg[ ]

este es el código de la función
nom_arg[1] = 1
nom_arg[2] = 2
nom_arg[3] = 3

RETURN nom_arg

//script en el código del evento desde donde llamas la funcion
INTERGER mi_array[ ]
,mi_array1[ ]

mi_array[1] = 1

mi_array1 = cualquiera(mi_array)

FOR i=1 TO UPPERBOUND(mi_array1)
MESSAGEBOX('DATOS',string(mi_array1[i]) )
NEXT

espero que te sirva de ayuda.... me comentas como te va
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

una aclaracion

Publicado por Milson Cardona (613 intervenciones) el 01/08/2003 22:11:43
Un saludo especial desde COLOMBIA

amigo, disculpame porque tengo una correción para hacerte

definicion de la funcion

RETURN TYPE none
NOMBRE cualquiera

ARGUMENT TYPE integer (o el tipo deseado) por REFERENCIA
ARGUMENT NAME nom_arg[ ]

este es el código de la función
nom_arg[1] = 1
nom_arg[2] = 2
nom_arg[3] = 3

//script en el código del evento desde donde llamas la funcion
INTERGER mi_array[ ]

mi_array[1] = 1

cualquiera(mi_array)

FOR i=1 TO UPPERBOUND(mi_array)
MESSAGEBOX('DATOS',string(mi_array[i]) )
NEXT

la corrección es porque al tratar de recibir el dato devuelto por la función en otro array me sacaba un error de PB.... tal vez generado por la incompatibilidad entre ARRAY y el dato ANY.

pero no importa, ya que si pasas el ARRAY como pararametro por referencia a la función, todos los cambios que le hagas en la función se reflejaran también en el script desde el cual lo enviaste...

espero haberme hecho entender y que te sirva de algo.....espero también que me comentes si resuelves el problema
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:GRACIAS

Publicado por Molon (67 intervenciones) el 06/08/2003 10:02:47
Me ha funcionado perfectamente. gracias!!!
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

No hay de que

Publicado por Milson Cardona (613 intervenciones) el 06/08/2003 18:43:41
Un saludo especial desde COLOMBIA

no hay de que MOLON, ya que yo también aprendí como hacerlo puesto que nunca había intentado enviar un array a una función.... pero cuando se me ocurra ya lo tengo cubierto

la idea del foro es esa... que todos aprendamos cada día más de nuestra herramienta

suerte y me alegro que hayas solucionado este problema
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