En este módulo, aprenderemos cómo manejar cadenas de caracteres en COBOL. Las cadenas son una parte fundamental de muchos programas, ya que permiten la manipulación de texto y datos alfanuméricos. COBOL ofrece varias herramientas y técnicas para trabajar con cadenas de manera eficiente.
Contenido
Definición de Cadenas
En COBOL, las cadenas de caracteres se definen utilizando el tipo de datos PIC X(n), donde n es la longitud de la cadena. A continuación, se muestra un ejemplo de cómo definir una cadena:
En este ejemplo, WS-NOMBRE es una cadena de 20 caracteres.
Operaciones Básicas con Cadenas
Asignación de Valores
Para asignar un valor a una cadena, utilizamos la sentencia MOVE:
Concatenación de Cadenas
COBOL no tiene una función de concatenación directa, pero podemos lograrlo utilizando la sentencia STRING:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NOMBRE-COMPLETO PIC X(40).
01 WS-NOMBRE PIC X(20) VALUE 'Juan'.
01 WS-APELLIDO PIC X(20) VALUE 'Perez'.
PROCEDURE DIVISION.
STRING WS-NOMBRE DELIMITED BY SPACE
' ' DELIMITED BY SIZE
WS-APELLIDO DELIMITED BY SPACE
INTO WS-NOMBRE-COMPLETO
END-STRING.Extracción de Subcadenas
Para extraer una subcadena, utilizamos la sentencia UNSTRING:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-FULL-NAME PIC X(40) VALUE 'Juan Perez'.
01 WS-FIRST-NAME PIC X(20).
01 WS-LAST-NAME PIC X(20).
PROCEDURE DIVISION.
UNSTRING WS-FULL-NAME
DELIMITED BY SPACE
INTO WS-FIRST-NAME
WS-LAST-NAME
END-UNSTRING.Manipulación de Cadenas
Reemplazo de Subcadenas
Para reemplazar una subcadena dentro de una cadena, podemos utilizar la sentencia INSPECT:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-TEXTO PIC X(50) VALUE 'El perro es marrón.'.
PROCEDURE DIVISION.
INSPECT WS-TEXTO
REPLACING ALL 'perro' BY 'gato'.Contar Ocurrencias
Para contar el número de ocurrencias de una subcadena, también utilizamos INSPECT:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-TEXTO PIC X(50) VALUE 'El perro es marrón. El perro es grande.'.
01 WS-COUNT PIC 9(2).
PROCEDURE DIVISION.
INSPECT WS-TEXTO
TALLYING WS-COUNT FOR ALL 'perro'.Ejercicios Prácticos
Ejercicio 1: Concatenación de Cadenas
Descripción: Escribe un programa que concatene el nombre y el apellido de una persona y los almacene en una variable WS-NOMBRE-COMPLETO.
Código:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NOMBRE-COMPLETO PIC X(40).
01 WS-NOMBRE PIC X(20) VALUE 'Ana'.
01 WS-APELLIDO PIC X(20) VALUE 'Gomez'.
PROCEDURE DIVISION.
STRING WS-NOMBRE DELIMITED BY SPACE
' ' DELIMITED BY SIZE
WS-APELLIDO DELIMITED BY SPACE
INTO WS-NOMBRE-COMPLETO
END-STRING.
DISPLAY 'Nombre Completo: ' WS-NOMBRE-COMPLETO.
STOP RUN.Ejercicio 2: Reemplazo de Subcadenas
Descripción: Escribe un programa que reemplace todas las ocurrencias de la palabra "rojo" por "azul" en una cadena.
Código:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-TEXTO PIC X(50) VALUE 'El coche es rojo. La casa es roja.'.
PROCEDURE DIVISION.
INSPECT WS-TEXTO
REPLACING ALL 'rojo' BY 'azul'.
DISPLAY 'Texto Modificado: ' WS-TEXTO.
STOP RUN.Ejercicio 3: Contar Ocurrencias
Descripción: Escribe un programa que cuente el número de veces que aparece la palabra "casa" en una cadena.
Código:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-TEXTO PIC X(50) VALUE 'La casa es grande. La casa es bonita.'.
01 WS-COUNT PIC 9(2).
PROCEDURE DIVISION.
INSPECT WS-TEXTO
TALLYING WS-COUNT FOR ALL 'casa'.
DISPLAY 'Número de ocurrencias de "casa": ' WS-COUNT.
STOP RUN.Conclusión
En este módulo, hemos aprendido cómo manejar cadenas en COBOL, incluyendo la definición, asignación, concatenación, extracción, reemplazo y conteo de subcadenas. Estas habilidades son esenciales para la manipulación de datos alfanuméricos en aplicaciones COBOL. Asegúrate de practicar los ejercicios proporcionados para reforzar tu comprensión y habilidad en el manejo de cadenas. En el próximo módulo, exploraremos el uso de tablas y arreglos en COBOL.
Curso de Programación COBOL
Módulo 1: Introducción a COBOL
- ¿Qué es COBOL?
- Historia de COBOL
- Configuración del Entorno COBOL
- Estructura Básica de un Programa COBOL
Módulo 2: Sintaxis Básica de COBOL y Tipos de Datos
Módulo 3: Estructuras de Control
Módulo 4: Trabajando con Datos
- Manejo de Archivos en COBOL
- Procesamiento de Archivos Secuenciales
- Procesamiento de Archivos Indexados
- Procesamiento de Archivos Relativos
Módulo 5: Manejo Avanzado de Datos
Módulo 6: Subprogramas y Programación Modular
Módulo 7: Manejo de Errores y Depuración
Módulo 8: COBOL y Bases de Datos
Módulo 9: Temas Avanzados
- COBOL Orientado a Objetos
- COBOL y Servicios Web
- Optimización del Rendimiento
- Mejores Prácticas en Programación COBOL
