En este módulo, aprenderemos sobre las técnicas de análisis en REXX, que son fundamentales para manipular y extraer información de cadenas de texto. Estas técnicas son esenciales para tareas como el procesamiento de archivos de texto, la extracción de datos y la manipulación de cadenas complejas.

Contenido

  1. Introducción a las Técnicas de Análisis
  2. Uso de la Instrucción PARSE
  3. Análisis Posicional
  4. Análisis Basado en Delimitadores
  5. Análisis de Plantillas
  6. Ejemplos Prácticos
  7. Ejercicios y Soluciones

  1. Introducción a las Técnicas de Análisis

El análisis en REXX se refiere a la capacidad de dividir y manipular cadenas de texto. La instrucción principal para realizar análisis en REXX es PARSE. Esta instrucción permite descomponer una cadena en partes más pequeñas basándose en posiciones específicas, delimitadores o plantillas.

  1. Uso de la Instrucción PARSE

La instrucción PARSE tiene varias formas y puede utilizarse para analizar cadenas de diferentes maneras. La sintaxis básica es:

PARSE [UPPER] [VAR] source [template]
  • UPPER: Convierte la cadena a mayúsculas antes de analizarla.
  • VAR: Indica que la fuente es una variable.
  • source: La cadena o variable que se va a analizar.
  • template: La plantilla que define cómo se debe analizar la cadena.

  1. Análisis Posicional

El análisis posicional se basa en la posición de los caracteres dentro de la cadena. Por ejemplo:

text = "12345ABCDE"
PARSE VAR text num 1-5 letters 6-10
SAY "Numbers:" num
SAY "Letters:" letters

En este ejemplo, num contendrá "12345" y letters contendrá "ABCDE".

Explicación del Código

  • text = "12345ABCDE": Define una cadena de texto.
  • PARSE VAR text num 1-5 letters 6-10: Analiza la cadena text y asigna los primeros 5 caracteres a num y los caracteres del 6 al 10 a letters.
  • SAY "Numbers:" num: Imprime "Numbers: 12345".
  • SAY "Letters:" letters: Imprime "Letters: ABCDE".

  1. Análisis Basado en Delimitadores

El análisis basado en delimitadores utiliza caracteres específicos para dividir la cadena. Por ejemplo:

text = "John,Doe,30"
PARSE VAR text firstName ',' lastName ',' age
SAY "First Name:" firstName
SAY "Last Name:" lastName
SAY "Age:" age

En este ejemplo, firstName contendrá "John", lastName contendrá "Doe" y age contendrá "30".

Explicación del Código

  • text = "John,Doe,30": Define una cadena de texto con comas como delimitadores.
  • PARSE VAR text firstName ',' lastName ',' age: Analiza la cadena text y asigna las partes separadas por comas a firstName, lastName y age.
  • SAY "First Name:" firstName: Imprime "First Name: John".
  • SAY "Last Name:" lastName: Imprime "Last Name: Doe".
  • SAY "Age:" age: Imprime "Age: 30".

  1. Análisis de Plantillas

El análisis de plantillas permite definir un patrón más complejo para dividir la cadena. Por ejemplo:

text = "Name: John Doe, Age: 30"
PARSE VAR text "Name:" firstName lastName ", Age:" age
SAY "First Name:" firstName
SAY "Last Name:" lastName
SAY "Age:" age

En este ejemplo, firstName contendrá "John", lastName contendrá "Doe" y age contendrá "30".

Explicación del Código

  • text = "Name: John Doe, Age: 30": Define una cadena de texto con un patrón específico.
  • PARSE VAR text "Name:" firstName lastName ", Age:" age: Analiza la cadena text utilizando la plantilla definida y asigna las partes correspondientes a firstName, lastName y age.
  • SAY "First Name:" firstName: Imprime "First Name: John".
  • SAY "Last Name:" lastName: Imprime "Last Name: Doe".
  • SAY "Age:" age: Imprime "Age: 30".

  1. Ejemplos Prácticos

Ejemplo 1: Análisis de una Fecha

date = "2023-10-05"
PARSE VAR date year '-' month '-' day
SAY "Year:" year
SAY "Month:" month
SAY "Day:" day

Ejemplo 2: Análisis de una URL

url = "https://www.example.com/path?query=123"
PARSE VAR url protocol "://" domain "/" path "?" query
SAY "Protocol:" protocol
SAY "Domain:" domain
SAY "Path:" path
SAY "Query:" query

  1. Ejercicios y Soluciones

Ejercicio 1: Análisis de una Dirección

Instrucciones: Analiza la siguiente cadena de dirección y extrae la calle, la ciudad y el código postal.

address = "123 Main St, Springfield, 12345"

Solución:

address = "123 Main St, Springfield, 12345"
PARSE VAR address street ',' city ',' postalCode
SAY "Street:" street
SAY "City:" city
SAY "Postal Code:" postalCode

Ejercicio 2: Análisis de un Registro CSV

Instrucciones: Analiza la siguiente cadena CSV y extrae los valores de nombre, apellido y edad.

record = "Alice,Smith,28"

Solución:

record = "Alice,Smith,28"
PARSE VAR record firstName ',' lastName ',' age
SAY "First Name:" firstName
SAY "Last Name:" lastName
SAY "Age:" age

Conclusión

En esta sección, hemos aprendido sobre las técnicas de análisis en REXX utilizando la instrucción PARSE. Hemos cubierto el análisis posicional, basado en delimitadores y de plantillas, y hemos visto ejemplos prácticos y ejercicios para reforzar los conceptos. Estas técnicas son esenciales para manipular y extraer información de cadenas de texto de manera eficiente. En el próximo módulo, exploraremos la interfaz con programas externos en REXX.

© Copyright 2024. Todos los derechos reservados