COBOL - Exemplos simples - QUANTIDADE DE CARACTERES



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - Exemplos simples - QUANTIDADE DE CARACTERES
Exemplos 1
IDENTIFICATION DIVISION.
PROGRAM-ID. CARACTERES.
DATA DIVISION. 
WORKING-STORAGE SECTION.
01  WS-AUXILIARES.
    05  WS-FIM       PIC 9(09)  VALUE 0.
    05  WS-IND       PIC 9(09)  VALUE 1.
    05  WS-TAMANHO   PIC 9(09)  VALUE 0.
    05  WS-RESULT    PIC 9(09)  VALUE 0.
    05  WS-CAMPO     PIC X(30) VALUE 'CARLOS ALB 11   2 8  '.
    
PROCEDURE DIVISION.

COMPUTE WS-RESULT = FUNCTION LENGTH (WS-CAMPO)

MOVE 0 TO WS-FIM WS-TAMANHO
PERFORM VARYING WS-IND FROM 1 BY 1 
     UNTIL WS-IND GREATER THAN WS-RESULT
     IF WS-CAMPO(WS-IND:1) NOT EQUAL SPACES
        ADD 1 TO WS-TAMANHO
     END-IF
END-PERFORM

DISPLAY 'WS-TAMANHO - ' WS-TAMANHO.
STOP RUN.

Resultado do teste:

WS-TAMANHO - 000000013

Exemplos 2
IDENTIFICATION DIVISION.
PROGRAM-ID. CARACTERES.
DATA DIVISION. 
WORKING-STORAGE SECTION.
01  WS-AUXILIARES.
    05  WS-FIM       PIC 9(09)  VALUE 0.
    05  WS-IND       PIC 9(09)  VALUE 1.
    05  WS-TAMANHO   PIC 9(09)  VALUE 0.
    05  WS-RESULT    PIC 9(09)  VALUE 0.
    05  WS-CAMPO     PIC X(30) VALUE 'CARLOS ALB 11      '.
    
PROCEDURE DIVISION.

COMPUTE WS-RESULT = FUNCTION LENGTH (WS-CAMPO)

MOVE 0 TO WS-FIM WS-TAMANHO
PERFORM VARYING WS-IND FROM 1 BY 1 
     UNTIL WS-IND GREATER THAN WS-RESULT
     IF WS-CAMPO(WS-IND:1) NOT EQUAL SPACES
        ADD 1 TO WS-TAMANHO
     END-IF
END-PERFORM

DISPLAY 'WS-TAMANHO - ' WS-TAMANHO.
STOP RUN.

Resultado do teste:

WS-TAMANHO - 000000011

Exemplos 3
IDENTIFICATION DIVISION.
PROGRAM-ID. CARACTERES.
DATA DIVISION. 
WORKING-STORAGE SECTION.
01  WS-AUXILIARES.
    05  WS-FIM       PIC 9(09)  VALUE 0.
    05  WS-IND       PIC 9(09)  VALUE 1.
    05  WS-TAMANHO   PIC 9(09)  VALUE 0.
    05  WS-RESULT    PIC 9(09)  VALUE 0.
    05  WS-CAMPO     PIC X(30) VALUE 'CARLOS ALB 11  1  1  1  11'.
    
PROCEDURE DIVISION.

COMPUTE WS-RESULT = FUNCTION LENGTH (WS-CAMPO)

MOVE 0 TO WS-FIM WS-TAMANHO
PERFORM VARYING WS-IND FROM 1 BY 1 
     UNTIL WS-IND GREATER THAN WS-RESULT
     IF WS-CAMPO(WS-IND:1) NOT EQUAL SPACES
        ADD 1 TO WS-TAMANHO
     END-IF
END-PERFORM

DISPLAY 'WS-TAMANHO - ' WS-TAMANHO.
STOP RUN.

Resultado do teste:

WS-TAMANHO - 000000016