COBOL - Manuseio de cordas
As instruções de manipulação de strings em COBOL são usadas para realizar várias operações funcionais em strings. A seguir estão as instruções de manipulação de string -
- Inspect
- String
- Unstring
Inspecionar
O verbo inspecionar é usado para contar ou substituir os caracteres em uma string. As operações de string podem ser realizadas em valores alfanuméricos, numéricos ou alfabéticos. As operações de inspeção são realizadas da esquerda para a direita. As opções usadas para as operações de string são as seguintes -
Tallying
A opção de contagem é usada para contar os caracteres da string.
Syntax
A seguir está a sintaxe da opção Tallying -
INSPECT input-string
TALLYING output-count FOR ALL CHARACTERS
Os parâmetros usados são -
- string de entrada - a string cujos caracteres devem ser contados.
- output-count - Item de dados para conter a contagem de caracteres.
Example
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 CHARACTER.
DISPLAY "WS-CNT1 : "WS-CNT1.
INSPECT WS-STRING TALLYING WS-CNT2 FOR ALL 'A'.
DISPLAY "WS-CNT2 : "WS-CNT2
STOP RUN.
JCL para executar o programa COBOL acima.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando você compila e executa o programa acima, ele produz o seguinte resultado -
WS-CNT1 : 15
WS-CNT2 : 06
Substituindo
A opção de substituição é usada para substituir os caracteres da string.
Syntax
A seguir está a sintaxe da opção Substituir -
INSPECT input-string REPLACING ALL char1 BY char2.
O parâmetro usado é -
input-string - A string cujos caracteres devem ser substituídos de char1 para char2.
Example
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 executar o programa COBOL acima.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando você compila e executa o programa acima, ele produz o seguinte resultado -
OLD STRING : ABCDACDADEAAAFF
NEW STRING : XBCDXCDXDEXXXFF
Corda
O verbo da string é usado para concatenar as strings. Usando a instrução STRING, duas ou mais cadeias de caracteres podem ser combinadas para formar uma cadeia mais longa. A cláusula 'Delimitado por' é obrigatória.
Syntax
A seguir está a sintaxe do verbo String -
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 seguir estão os detalhes dos parâmetros usados -
- ws-string1 e ws-string2: strings de entrada a serem concatenadas
- ws-string: string de saída
- ws-count: usado para contar o comprimento da nova string concatenada
- Delimitado especifica o fim da string
- Ponteiro e estouro são opcionais
Example
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 executar o programa COBOL acima -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando você compila e executa o programa acima, ele produz o seguinte resultado -
WS-STRING : WelcomeToTutorialspoint
WS-COUNT : 25
Desencordoar
O verbo unstring é usado para dividir uma string em várias sub-strings. Delimitado por cláusula é obrigatório.
Syntax
A seguir está a sintaxe do verbo Unstring -
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.
Example
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 executar o programa COBOL acima -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando você compila e executa o programa acima, ele produz o seguinte resultado -
WS-STR1 : WELCOME
WS-STR2 : TO
WS-STR3 : TUTORIALSPOINT