PDA

Ver la Versión Completa : decodificar parametro de entrada


Mar_83
25/02/08, 09:09:34
Hola a tod@s!
Necesito hacer una funcion en la que me piden que decodifique un parametro de entrada, ya que contiene los datos necesarios para llamar a una funcion.
este parametro(id_proceso) es del tipo char50.
alguien puede ayudarme?
gracias.

pirri
25/02/08, 09:24:42
Pues así rápido lo más sencillo es crearte un registro con la codificación de los parametros (no sé si es lo que preguntabas).

por ejemplo y mal escrito:


parameter id(6).

DATA: BEGIN OF parametros.
DATA: a,
b(2),
c(3),
END OF parametros.

move id to parametros.

write:/ busca.
write:/ parametros-a,' ', parametros-b , ' ', parametros-c.

Y tendrías troceado el parametro del id del proceso. Si tienes que hacer transformaciones (fechas) ya lo haces sobre el trozo trozo. Creo que te podría servir.

Un saludo.

Mar_83
25/02/08, 11:42:11
nada asi no puedo.
a ver m explico bien.
tengo una funcion con una estructura como parametro de entrada, dentro de esa estructura hay varios campos y uno de esos campos (id_proceso) tiene a su vez varios datos:id, perfil,tratamiento,etc.
en tonces necesito saber como decodificar el id_proceso(char50).
he pensado hacer:
id_proceso(50)
id_ar=id_proceso(12)
perfil=id_proceso+12(8)
.....
el problema es que no se si están colocados así.
entonces kisiera saber otra forma de hacerlo, sin tener que saber la posición en la que están colocados.

ballan
25/02/08, 15:06:21
Una forma practica seria introducir valores de separacion y utilizar la orden split

Por ejemplo

ID_PROCESO: 01/12345/6789

split id_proceso at '/' into campo1 campo2 campo3

y tendrias que campo1 = 01
campo2 = 12345
campo3 = 6789

Mar_83
25/02/08, 15:21:19
claro xo yo es k no se k valores toman esos campos.
xke todos esos valores "supuestamente" los tengo k recoger en una select

Floren
25/02/08, 16:07:54
Hola,

Si no te dicen el "desglose" de esos 50 caracteres es imposible. Detalla un poquito más eso que dices del select.

Un saludo

pirri
25/02/08, 16:12:13
¡Intrigante!

De alguna manera el analista te debería concretar el formato y los valores de ese campo al no tener control sobre la entrada.

O bien te envían el campo con una estructura definida por tamaño o bien te lo envían con algún separador como comenta ballan.

Otra tercera opción, si varía según el select (que me intriga) podrías enviar un parámetro indicando una estructura en la que va el ID_PROCESO para luego poder separarlo o un código del tipo del registro que sea finito. Por ejemplo:


Tipo A: Llega ar(2), perfil(5), campo3(8), etc...
Tipo B: perfil(5), campo6(3), campo3(8), etc...

Aunque la estructura varie dentro del campo, deben conocer de que forma se ha creado.

Un saludo.

Mar_83
25/02/08, 16:13:48
mira te copio un poco el enunciado.
tengo que crear una funcion, en la que me dan como parametros de entrada:
*registro_error (estructura zmteia):
-cod_intf
-id_proceso
-....
entonces m piden:que decodifique el id_proceso recibido como parametro de entrada que contiene:
*id ar(12 char)
*perfil ar(8char)
*....
y eso es lo que no se como hacerlo.
se que el id_proceso es un char50.

Mar_83
25/02/08, 16:26:05
ok muxas gracias a todos, xfin ya me han explicado!
he tenido que declarar la variable id_proceso type char50
y desde ahi he exo id_ar = id_proceso(12)
perfil_ar = id_proceso+12(8)
....
porque me han dicho que si está colocado en ese orden.