En aquest tema, aprendrem com gestionar cadenes de text en COBOL. Les cadenes són una part fonamental de molts programes, ja que sovint necessitem manipular text per a diverses aplicacions, com ara la generació de informes, la manipulació de dades d'entrada i sortida, i la comunicació amb altres sistemes.

Conceptes Clau

  1. Declaració de Cadenes: Com definir cadenes en COBOL.
  2. Operacions Bàsiques: Com concatenar, truncar i comparar cadenes.
  3. Funcions Intrínseques: Funcions predefinides per a la manipulació de cadenes.
  4. Exemples Pràctics: Codi d'exemple per il·lustrar l'ús de cadenes.
  5. Exercicis Pràctics: Exercicis per reforçar els conceptes apresos.

Declaració de Cadenes

En COBOL, les cadenes es declaren utilitzant el tipus de dades PIC X(n), on n és la longitud de la cadena.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC X(20).
01 WS-ADDRESS PIC X(50).

En aquest exemple, WS-NAME és una cadena de 20 caràcters i WS-ADDRESS és una cadena de 50 caràcters.

Operacions Bàsiques

Concatenació de Cadenes

Per concatenar cadenes en COBOL, utilitzem l'operació STRING.

STRING WS-NAME DELIMITED BY SPACE
       WS-ADDRESS DELIMITED BY SPACE
       INTO WS-FULL-INFO.

Truncament de Cadenes

Per truncar una cadena, podem utilitzar l'operació UNSTRING.

UNSTRING WS-FULL-INFO DELIMITED BY SPACE
         INTO WS-NAME, WS-ADDRESS.

Comparació de Cadenes

Per comparar cadenes, utilitzem l'operació IF.

IF WS-NAME = "JOHN DOE"
   DISPLAY "Name is John Doe".

Funcions Intrínseques

COBOL proporciona diverses funcions intrínseques per a la manipulació de cadenes. Algunes de les més comunes són:

  • FUNCTION LENGTH: Retorna la longitud d'una cadena.
  • FUNCTION CONCATENATE: Concatena dues o més cadenes.
  • FUNCTION SUBSTRING: Retorna una subcadena d'una cadena.

Exemple d'Ús de Funcions Intrínseques

MOVE "JOHN DOE" TO WS-NAME.
MOVE FUNCTION LENGTH(WS-NAME) TO WS-NAME-LENGTH.
DISPLAY "Length of WS-NAME: " WS-NAME-LENGTH.

MOVE FUNCTION SUBSTRING(WS-NAME FROM 1 FOR 4) TO WS-FIRST-NAME.
DISPLAY "First name: " WS-FIRST-NAME.

Exemples Pràctics

Exemple 1: Concatenació de Cadenes

IDENTIFICATION DIVISION.
PROGRAM-ID. StringExample.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC X(20) VALUE "JOHN".
01 WS-SURNAME PIC X(20) VALUE "DOE".
01 WS-FULL-NAME PIC X(40).

PROCEDURE DIVISION.
    STRING WS-NAME DELIMITED BY SPACE
           " " DELIMITED BY SIZE
           WS-SURNAME DELIMITED BY SPACE
           INTO WS-FULL-NAME.
    DISPLAY "Full Name: " WS-FULL-NAME.
    STOP RUN.

Exemple 2: Truncament de Cadenes

IDENTIFICATION DIVISION.
PROGRAM-ID. TruncateExample.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-FULL-NAME PIC X(40) VALUE "JOHN DOE".
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.
    DISPLAY "First Name: " WS-FIRST-NAME.
    DISPLAY "Last Name: " WS-LAST-NAME.
    STOP RUN.

Exercicis Pràctics

Exercici 1: Concatenació de Cadenes

Descripció: Escriu un programa COBOL que llegeixi dos noms de l'usuari i els concateni en una sola cadena.

Solució:

IDENTIFICATION DIVISION.
PROGRAM-ID. ConcatExercise.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-FIRST-NAME PIC X(20).
01 WS-LAST-NAME PIC X(20).
01 WS-FULL-NAME PIC X(40).

PROCEDURE DIVISION.
    DISPLAY "Enter first name: ".
    ACCEPT WS-FIRST-NAME.
    DISPLAY "Enter last name: ".
    ACCEPT WS-LAST-NAME.
    
    STRING WS-FIRST-NAME DELIMITED BY SPACE
           " " DELIMITED BY SIZE
           WS-LAST-NAME DELIMITED BY SPACE
           INTO WS-FULL-NAME.
    
    DISPLAY "Full Name: " WS-FULL-NAME.
    STOP RUN.

Exercici 2: Truncament de Cadenes

Descripció: Escriu un programa COBOL que llegeixi un nom complet de l'usuari i el separi en nom i cognom.

Solució:

IDENTIFICATION DIVISION.
PROGRAM-ID. TruncateExercise.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-FULL-NAME PIC X(40).
01 WS-FIRST-NAME PIC X(20).
01 WS-LAST-NAME PIC X(20).

PROCEDURE DIVISION.
    DISPLAY "Enter full name: ".
    ACCEPT WS-FULL-NAME.
    
    UNSTRING WS-FULL-NAME DELIMITED BY SPACE
             INTO WS-FIRST-NAME, WS-LAST-NAME.
    
    DISPLAY "First Name: " WS-FIRST-NAME.
    DISPLAY "Last Name: " WS-LAST-NAME.
    STOP RUN.

Conclusió

En aquesta secció, hem après com gestionar cadenes en COBOL, incloent-hi la declaració, la concatenació, el truncament i la comparació de cadenes, així com l'ús de funcions intrínseques per a la manipulació de cadenes. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. Amb aquests coneixements, estàs preparat per manipular cadenes de text en els teus programes COBOL de manera efectiva.

© Copyright 2024. Tots els drets reservats