COBOL - Manipulação de Strings


Advertisements

Comandos de manipulação de String EM COBOL são usados para fazer várias operações funcionais em strings. Seguem-se a manipulação de strings declarações:

  • Inspecione
  • String
  • Unstring

Inspecione

Verifique se há verbo é usado para a contagem ou substituir os caracteres em uma string. String as operações que podem ser realizadas sobre caracteres alfanuméricos, numéricos ou alfabéticos valores. Inspecione as operações são executadas da esquerda para a direita. As opções usadas para a seqüência das operações são as seguintes:

Contagem

Concordância entre opção é usada para contar a string caracteres.

Sintaxe

Seguir é a sintaxe de concordância entre opção:

INSPECT input-string
TALLYING output-count FOR ALL CHARACTERS

Os parâmetros utilizados são os seguintes:

  • Entrada de caracteres: a cadeia cujas personagens são para ser contadas.
  • Saída-count : item de dados para realizar a contagem de caracteres.

Exemplo

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 executar o programa em COBOL.

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

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

WS-CNT1 : 15
WS-CNT2 : 06

Voltar

Substituição opção é usada para substituir a string caracteres.

Sintaxe

Sintaxe é a seguinte substituição de opção:

INSPECT input-string REPLACING ALL char1 BY char2.

O parâmetro utilizado é:

Entrada de caracteres: a cadeia cujos caracteres são substituídas de char1 para char2.

Exemplo

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 em COBOL.

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

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

OLD STRING : ABCDACDADEAAAFF
NEW STRING : XBCDXCDXDEXXXFF

String

String verbo é utilizado para concatenar strings. Usando instrução STRING, duas ou mais strings de caracteres podem ser combinadas para formar uma string longa. "Delimitada pela cláusula é obrigatória.

Sintaxe

Sintaxe é a seguinte seqüência de verbos:

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.

Na sequência estão os detalhes dos parâmetros utilizados.

  • WS-string1 e ws-string2 : as seqüências de caracteres de entrada que serão concatenados
  • WS-string : string Saída
  • WS-count : Usado para contar o comprimento da nova string concatenada
  • Delimitada especifica o final da cadeia de caracteres
  • Ponteiro e de transbordo são opcionais

Exemplo

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 em COBOL:

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

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

WS-STRING : WelcomeToTutorialspoint       
WS-COUNT : 25

Unstring

Unstring verbo é utilizado para dividir uma string em várias sub-strings. Delimitada pela cláusula é obrigatória.

Sintaxe

Sintaxe é a seguinte 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.

Exemplo

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 em COBOL:

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

Quando você compilar e executar o programa acima referido, que produz o seguinte resultado:

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