Ayuda ejercicio

Todo lo relacionado con REXX en este ambiente.
Responder
artilla
Usuario
Usuario
Mensajes: 6
Registrado: 01 Ago 2017, 13:08
País: españa
Ciudad: barcelona
Ocupación: Consultor

Ayuda ejercicio

Mensaje por artilla » 21 Sep 2017, 17:07

Buenas noches,

necesito ayuda para realizar un rexx para un ejercicio del modulo que curso y nose como empezarlo....
tengo un fichero llamado USUARIO.LISTA que tiene datos y a traves de un rexx tiene que coger dos datos e introducirlo en una frase.
si hay 200 lineas de informacion debera mostrar 200 lineas con esas palabras en concreto de cada linea para añadir a la frase.


fichero USUARIO.LISTA


CONTIENE:

0001 87458 258936 JKLOJ
0002 95416 245268 DSFGR
0003 23131 021576 SDFGE
0004 21346 101112 DSROH
0005 00055 045797 EHUFR
0006 53686 000047 SWOIH
0007 56464 789914 FRRRG
0008 23547 532787 GHOGP
0009 51005 148666 RG88U8
...
......

Es decir cuando encuentre los dos primeros registros los añadira en la frase, e imprimirar tantas frases como lineas tenga el archivo.

el alumno Nº (XXXX) tiene la matriculacion para el año 2017 siendo el numero de registro (XXXXX)

SERIA LOS DE LA PRIMERA COLUMNA --------------------------------------SERIA LOS DE LA SEGUNDA COLUMNA

f_caballero
Usuario avanzado
Usuario avanzado
Mensajes: 55
Registrado: 25 Sep 2007, 16:36
País: España
Ciudad: Madrid
Ocupación: Analista de desarrollo

Re: Ayuda ejercicio

Mensaje por f_caballero » 22 Sep 2017, 10:41

Hola, si los registros son como parece, con los campos separados por blancos, puedes:

1) Utilizar la función WORD variable = WORD(registro,numero de la palabra que busco)
ó
2) Utilizar el PARSE VAR para cargar las variables que necesites. PARSE VAR registro palabra1 palabra2 . (el punto descarta el resto del registro).

En cualquier caso, si es un ejercicio para un curso, deberían haberte explicado primero las funciones para que luego puedas aplicarlas.
Y no pierdas de vista nunca el manual. No hace falta sabérselo de memoria, pero si que te suene que tal o cuál cosa se puede hacer.

Suerte.
Salud y fortuna.
Fernando Caballero

artilla
Usuario
Usuario
Mensajes: 6
Registrado: 01 Ago 2017, 13:08
País: españa
Ciudad: barcelona
Ocupación: Consultor

Re: Ayuda ejercicio

Mensaje por artilla » 26 Sep 2017, 16:55

Hola francisco, bueno esque en el modulo estamos haciendo otro lenguaje y voy estudiando e introduciendo con ayuda del profesor rexx


Me ha quedado de la siguiente forma que creo que quedaría correcta.

/* REXX */
ADDRESS TSO 'PROFILE NOPREFIX'
"ALLOC FI(DDIN) DA(USUARIO.LISTA) SHR REUSE"
"EXECIO * DISKR DDIN (STEM registro. FINIS"
"FREE FI(DDIN)"
FLAG1=1
DO I=1 TO REGISTRO.0
PARSE VAR NUM ALU . .
QUEUE 'el alumno Nº (' NUM ')tiene la matriculacion para el año 2017 siendo el numero de registro (' ALU ')'
END

f_caballero
Usuario avanzado
Usuario avanzado
Mensajes: 55
Registrado: 25 Sep 2007, 16:36
País: España
Ciudad: Madrid
Ocupación: Analista de desarrollo

Re: Ayuda ejercicio

Mensaje por f_caballero » 28 Sep 2017, 03:45

Hola, dos cosas a corregir:
1) No me llamo Francisco.
2) En el PARSE te falta la variable de origen de los datos: PARSE VAR origen DEST1 DEST2 .
"origen" sería el elemento del stem e proceso: registro.I
Salud y fortuna.
Fernando Caballero

artilla
Usuario
Usuario
Mensajes: 6
Registrado: 01 Ago 2017, 13:08
País: españa
Ciudad: barcelona
Ocupación: Consultor

Re: Ayuda ejercicio

Mensaje por artilla » 06 Feb 2018, 18:06

Buenas, disculpa fernando... no era mi intencion y gracias de nuevo.

Avatar de Usuario
jlanderos
Usuario
Usuario
Mensajes: 18
Registrado: 26 Sep 2017, 18:21
País: México
Ciudad: CDMX
Ocupación: IT Specialist

Re: Ayuda ejercicio

Mensaje por jlanderos » 06 Mar 2018, 22:29

artilla escribió:Hola francisco, bueno esque en el modulo estamos haciendo otro lenguaje y voy estudiando e introduciendo con ayuda del profesor rexx


Me ha quedado de la siguiente forma que creo que quedaría correcta.

/* REXX */
ADDRESS TSO 'PROFILE NOPREFIX'
"ALLOC FI(DDIN) DA(USUARIO.LISTA) SHR REUSE"
"EXECIO * DISKR DDIN (STEM registro. FINIS"
"FREE FI(DDIN)"
FLAG1=1
DO I=1 TO REGISTRO.0
PARSE VAR NUM ALU . .
QUEUE 'el alumno Nº (' NUM ')tiene la matriculacion para el año 2017 siendo el numero de registro (' ALU ')'
END
Quizá el ajuste a realizar sería en el bucle "DO":

Código: Seleccionar todo

do I=1 to REGISTRO.0                                                        
 parse var REGISTRO.I NUM ALU .
  say 'el alumno Nº (' NUM ')tiene la matriculacion para el año 2017 siendo el numero de registro (' ALU ')'     
end I
También se pueden utilizar otra estructura distinta para extraer los datos separadamente, como:

Código: Seleccionar todo

do I=1 to REGISTRO.0                                                        
 parse value REGISTRO.I with NUM ALU .
  say 'el alumno Nº (' NUM ')tiene la matriculacion para el año 2017 siendo el numero de registro (' ALU ')'     
end I

Código: Seleccionar todo

do I=1 to REGISTRO.0                                                        
  say 'el alumno Nº (' word(REGISTRO.I, 1) ')tiene la matriculacion para el año 2017 siendo el numero de registro (' word(REGISTRO.I, 2) ')'     
end I
Sin embargo, lo importante de todo esto es entender cúando debe de aplicarse una función, el alcance que tiene dentro del procesamiento del sistema donde se ejecuta, complejidad, finalidad para facilitar el trabajo, etc. Es como decía un antiguo jefe que tenia "No quieras matar una mosca a bazucazos".

A mi muy particular opinión, antes de siquiera querer aprender un nuevo lenguaje hay que entender la lógica de definición de un procesamiento. Teniendo una buena base, dicha lógica puede ser aplicada a cualquier lenguaje de programación. Ya que éstos parten del mismo origen... facilitarnos la vida.

Suerte :arriba: .

El camino de 1,000 kms inicia con un solo paso

Responder