COBOL - Exemplos simples - INSPECT FUNCTION REVERSE
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-TAMANHO-1 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. INSPECT FUNCTION REVERSE (WS-CAMPO) TALLYING WS-TAMANHO-1 FOR LEADING SPACES DISPLAY 'Quantidade de brancos depois o último caracter significativo ' DISPLAY 'WS-TAMANHO-1 - ' WS-TAMANHO-1. 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 'Quantidade de caracteres significativo no campo' DISPLAY 'WS-TAMANHO - ' WS-TAMANHO. STOP RUN. Resultado do teste: Quantidade de brancos depois o último caracter significativo WS-TAMANHO-1 - 000000017 Quantidade de caracteres significativo no campo WS-TAMANHO - 000000011
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-TAMANHO-1 PIC 9(09) VALUE 0. 05 WS-RESULT PIC 9(09) VALUE 0. 05 WS-CAMPO PIC X(50) VALUE 'CARLOS ALBERTO DORNELLES'. PROCEDURE DIVISION. INSPECT FUNCTION REVERSE (WS-CAMPO) TALLYING WS-TAMANHO-1 FOR LEADING SPACES DISPLAY 'Quantidade de brancos depois o último caracter significativo ' DISPLAY 'WS-TAMANHO-1 - ' WS-TAMANHO-1. 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 'Quantidade de caracteres significativo no campo' DISPLAY 'WS-TAMANHO - ' WS-TAMANHO. STOP RUN. Resultado do teste: Quantidade de brancos depois o último caracter significativo WS-TAMANHO-1 - 000000026 Quantidade de caracteres significativo no campo WS-TAMANHO - 000000022
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-TAMANHO-1 PIC 9(09) VALUE 0. 05 WS-RESULT PIC 9(09) VALUE 0. 05 WS-CAMPO PIC X(50) VALUE 'C A R L O S ALBERTO DORNELLES'. PROCEDURE DIVISION. INSPECT FUNCTION REVERSE (WS-CAMPO) TALLYING WS-TAMANHO-1 FOR LEADING SPACES DISPLAY 'Quantidade de brancos depois o último caracter significativo ' DISPLAY 'WS-TAMANHO-1 - ' WS-TAMANHO-1. 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 'Quantidade de caracteres significativo no campo' DISPLAY 'WS-TAMANHO - ' WS-TAMANHO. STOP RUN. Resultado do teste: Quantidade de brancos depois o último caracter significativo WS-TAMANHO-1 - 000000021 Quantidade de caracteres significativo no campo WS-TAMANHO - 000000022
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-TAMANHO-1 PIC 9(09) VALUE 0. 05 WS-RESULT PIC 9(09) VALUE 0. 05 WS-CAMPO PIC X(50) VALUE 'CARLOS CADCOBOL'. PROCEDURE DIVISION. INSPECT FUNCTION REVERSE (WS-CAMPO) TALLYING WS-TAMANHO-1 FOR LEADING SPACES DISPLAY 'Quantidade de brancos depois o último caracter significativo ' DISPLAY 'WS-TAMANHO-1 - ' WS-TAMANHO-1. 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 'Quantidade de caracteres significativo no campo' DISPLAY 'WS-TAMANHO - ' WS-TAMANHO. STOP RUN. Resultado do teste: Quantidade de brancos depois o último caracter significativo WS-TAMANHO-1 - 000000035 Quantidade de caracteres significativo no campo WS-TAMANHO - 000000014
IDENTIFICATION DIVISION. PROGRAM-ID. CARACTERES. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-AUXILIARES. 05 WS-TAMANHO PIC 9(09) VALUE 0. 05 WS-TAMANHO-1 PIC 9(09) VALUE 0. 05 WS-RESULT PIC 9(09) VALUE 0. 05 WS-CAMPO PIC X(30) VALUE 'CARLOS ALBERTO '. PROCEDURE DIVISION. INSPECT FUNCTION REVERSE (WS-CAMPO) TALLYING WS-TAMANHO-1 FOR LEADING SPACES DISPLAY 'Quantidade de brancos depois o último caracter significativo ' DISPLAY 'WS-TAMANHO-1 - ' WS-TAMANHO-1. COMPUTE WS-RESULT = FUNCTION LENGTH (WS-CAMPO) COMPUTE WS-RESULT = WS-RESULT - WS-TAMANHO-1 DISPLAY 'Quantidade de dados até o último caracter significativo' DISPLAY 'WS-RESULT - ' WS-RESULT DISPLAY 'WS-CAMPO - ' WS-CAMPO (1:WS-RESULT) STOP RUN. Resultado do teste: Quantidade de brancos depois o último caracter significativo WS-TAMANHO-1 - 000000016 Quantidade de dados até o último caracter significativo WS-RESULT - 000000014 WS-CAMPO - CARLOS ALBERTO