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