COBOL - Manejo de Cadenas


Advertisements

Manejo de cadenas en COBOL se utilizan para hacer varias operaciones con cadenas. A continuación, se indican las instrucciones de manejo cadena:

  • Inspeccionar
  • Cadena
  • Unstring

Inspeccionar

Inspeccione verbo es usado para contar o reemplazar los caracteres de una cadena. Cadena de operaciones que se pueden llevar a cabo el alfanumérico, numérico, alfabético o valores. Inspeccionar las operaciones se realizan de izquierda a derecha. Las opciones que se utilizan para las operaciones de cadena de la siguiente manera:

Cómputo

Cómputo se utiliza la opción para contar los caracteres de la cadena.

Sintaxis

Continuación se presenta la sintaxis de Cómputo opción:

INSPECT input-string
TALLYING output-count FOR ALL CHARACTERS

Los parámetros utilizados son los siguientes:

  • Entrada de cadena: La cadena cuyos caracteres se van a contar.
  • Salida de contar : elemento de datos que se va a celebrar el recuento de caracteres.

Ejemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-CNT1 PIC 9(2) VALUE 0.
   01 WS-CNT2 PIC 9(2) VALUE 0.
   01 WS-STRING PIC X(15) VALUE 'ABCDACDADEAAAFF'.
   
PROCEDURE DIVISION.
   INSPECT WS-STRING TALLYING WS-CNT1 FOR ALL CHARACTERS.
   DISPLAY "WS-CNT1 : "WS-CNT1.
   INSPECT WS-STRING TALLYING WS-CNT2 FOR ALL 'A'.
   DISPLAY "WS-CNT2 : "WS-CNT2
   
STOP RUN.

JCL para ejecutar el programa COBOL.

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:

WS-CNT1 : 15
WS-CNT2 : 06

Sustitución

Sustitución opción se utiliza para sustituir el caracteres de la cadena.

Sintaxis

Continuación se presenta la sintaxis de sustitución:

INSPECT input-string REPLACING ALL char1 BY char2.

El parámetro utilizado es el siguiente:

Entrada de cadena: La cadena cuyos caracteres se van a cambiar de char1 a char2.

Ejemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-STRING PIC X(15) VALUE 'ABCDACDADEAAAFF'.

PROCEDURE DIVISION.
   DISPLAY "OLD STRING : "WS-STRING.
   INSPECT WS-STRING REPLACING ALL 'A' BY 'X'.
   DISPLAY "NEW STRING : "WS-STRING.
   
STOP RUN.

JCL para ejecutar el programa COBOL.

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:

OLD STRING : ABCDACDADEAAAFF
NEW STRING : XBCDXCDXDEXXXFF

Cadena

Cadena verbo se utiliza para concatenar las cadenas. Uso de cadenas, dos o más cadenas de caracteres se pueden combinar para formar una cadena más larga. 'Delimitado por' la cláusula es obligatoria.

Sintaxis

La sintaxis siguiente es verbo de cadena:

STRING ws-string1 DELIMITED BY SPACE
   ws-string2 DELIMITED BY SIZE
   INTO ws-destination-string
   WITH POINTER ws-count
   ON OVERFLOW DISPLAY message1
   NOT ON OVERFLOW DISPLAY message2
END-STRING.

A continuación, se describen los detalles de los parámetros utilizados:

  • WS-cadena1 y ws-cadena2 : cadenas de entrada que se concatenarán
  • WS-string : cadena de salida
  • WS-: Se utiliza para contar la longitud de la nueva cadena concatenada
  • Delimitado especifica el final de la cadena
  • Puntero y el desborde son opcionales

Ejemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-STRING PIC A(30).
   01 WS-STR1 PIC A(15) VALUE 'Tutorialspoint'.
   01 WS-STR2 PIC A(7) VALUE 'Welcome'.
   01 WS-STR3 PIC A(7) VALUE 'To AND'.
   01 WS-COUNT PIC 99 VALUE 1.

PROCEDURE DIVISION.
   STRING WS-STR2 DELIMITED BY SIZE
      WS-STR3 DELIMITED BY SPACE
      WS-STR1 DELIMITED BY SIZE
      INTO WS-STRING 
      WITH POINTER WS-COUNT
      ON OVERFLOW DISPLAY 'OVERFLOW!' 
   END-STRING.
   
   DISPLAY 'WS-STRING : 'WS-STRING.
   DISPLAY 'WS-COUNT : 'WS-COUNT.

STOP RUN.

JCL para ejecutar el programa COBOL:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:

WS-STRING : WelcomeToTutorialspoint       
WS-COUNT : 25

Unstring

Unstring verbo se usa para dividir una cadena en varias sub-cadenas. Delimitado por la cláusula es obligatoria.

Sintaxis

Continuación se presenta la sintaxis de Unstring verbo:

UNSTRING ws-string DELIMITED BY SPACE
INTO ws-str1, ws-str2
WITH POINTER ws-count
ON OVERFLOW DISPLAY message
NOT ON OVERFLOW DISPLAY message
END-UNSTRING.

Ejemplo

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-STRING PIC A(30) VALUE 'WELCOME TO TUTORIALSPOINT'.
   01 WS-STR1 PIC A(7).
   01 WS-STR2 PIC A(2).
   01 WS-STR3 PIC A(15).
   01 WS-COUNT PIC 99 VALUE 1.

PROCEDURE DIVISION.
   UNSTRING WS-STRING DELIMITED BY SPACE
      INTO WS-STR1, WS-STR2, WS-STR3
   END-UNSTRING.
   
   DISPLAY 'WS-STR1 : 'WS-STR1.
   DISPLAY 'WS-STR2 : 'WS-STR2.
   DISPLAY 'WS-STR3 : 'WS-STR3.
   
STOP RUN.

JCL para ejecutar el programa COBOL:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:

WS-STR1 : WELCOME
WS-STR2 : TO
WS-STR3 : TUTORIALSPOINT 
Advertisements