* Debug Program for Edit Input Unsigned Integer Number Subroutine * ---------------------------------------------------------------- *----------------------------------------------------------------- IDENTIFICATION DIVISION. *----------------------------------------------------------------- PROGRAM-ID. ZEDITINT. AUTHOR. Vladimir Veytsel. DATE-WRITTEN. 09/23/1990. DATE-COMPILED. 10/15/1997. *----------------------------------------------------------------- DATA DIVISION. *----------------------------------------------------------------- WORKING-STORAGE SECTION. 01 Test-Field. 02 FILLER PIC X(1) VALUE QUOTE. 02 Test-Number PIC X(5). 02 FILLER PIC X(1) VALUE QUOTE. 77 Test-Number-Length PIC 99 COMP. 01 Validity-Flag PIC X. 88 Valid-Number VALUE 'Y'. 88 InValid-Number VALUE 'N'. 01 Test-Table. 02 FILLER PIC X(5) VALUE '1 '. 02 FILLER PIC X(5) VALUE '12 '. 02 FILLER PIC X(5) VALUE '123 '. 02 FILLER PIC X(5) VALUE '1234 '. 02 FILLER PIC X(5) VALUE '12345'. 02 FILLER PIC X(5) VALUE ' 2345'. 02 FILLER PIC X(5) VALUE ' 345'. 02 FILLER PIC X(5) VALUE ' 45'. 02 FILLER PIC X(5) VALUE ' 5'. 02 FILLER PIC X(5) VALUE ' 3 '. 02 FILLER PIC X(5) VALUE ' 2 4 '. 02 FILLER PIC X(5) VALUE '1 3 5'. 02 FILLER PIC X(5) VALUE ' 234 '. 02 FILLER PIC X(5) VALUE '+2345'. 02 FILLER PIC X(5) VALUE '-2345'. 02 FILLER PIC X(5) VALUE '*2345'. 02 FILLER PIC X(5) VALUE '/2345'. 02 FILLER PIC X(5) VALUE ' 2 4 '. 02 FILLER PIC X(5) VALUE ' 2,4 '. 02 FILLER PIC X(5) VALUE ' 2.4 '. 02 FILLER PIC X(5) VALUE ' '. 02 FILLER PIC X(5) VALUE ' '. 02 FILLER PIC X(5) VALUE '0 '. 02 FILLER PIC X(5) VALUE '00 '. 02 FILLER PIC X(5) VALUE '000 '. 02 FILLER PIC X(5) VALUE '0000 '. 02 FILLER PIC X(5) VALUE '00000'. 02 FILLER PIC X(5) VALUE ' 0000'. 02 FILLER PIC X(5) VALUE ' 000'. 02 FILLER PIC X(5) VALUE ' 00'. 02 FILLER PIC X(5) VALUE ' 0'. 02 FILLER PIC X(5) VALUE ' 0 '. 02 FILLER PIC X(5) VALUE ' 0 0 '. 02 FILLER PIC X(5) VALUE '0 0 0'. 02 FILLER PIC X(5) VALUE ' 000 '. 02 FILLER PIC X(5) VALUE '+0000'. 02 FILLER PIC X(5) VALUE '-0000'. 02 FILLER PIC X(5) VALUE '*0000'. 02 FILLER PIC X(5) VALUE '/0000'. 02 FILLER PIC X(5) VALUE ' 0 0 '. 02 FILLER PIC X(5) VALUE ' 0,0 '. 02 FILLER PIC X(5) VALUE ' 0.0 '. 01 FILLER REDEFINES Test-Table. 02 Test-Value PIC X(5) OCCURS 42 TIMES. 77 Counter PIC 99 COMP. 77 Counter-Out PIC Z9. 77 Div-Count PIC 99 COMP. 77 Rem-Count PIC 9 COMP. 77 Comment PIC X(15). 01 Compile-Date-Time. 02 Compile-Date PIC X(8). 02 Compile-Time PIC X(5). *----------------------------------------------------------------- PROCEDURE DIVISION. *----------------------------------------------------------------- MOVE WHEN-COMPILED TO Compile-Date-Time. MOVE ':' TO Compile-Time(3:1). DISPLAY 'EDITINT Edit Input Unsigned Integer Number ' Compile-Date ' ' Compile-Time. DISPLAY '------------------------------------------------' '--------------'. MOVE LENGTH OF Test-Number TO Test-Number-Length. PERFORM Test-Next-Number VARYING Counter FROM 1 BY 1 UNTIL Counter > 42. STOP RUN. * Test Next Number from the Test Table --------------------------- Test-Next-Number. MOVE Test-Value(Counter) TO Test-Number. DIVIDE Counter BY 2 GIVING Div-Count REMAINDER Rem-Count. IF (Rem-Count = 0) INSPECT Test-Number REPLACING ALL SPACES BY '_'. MOVE Counter TO Counter-Out. DISPLAY ' '. DISPLAY Counter-Out '. Number before: ' Test-Field. INSPECT Test-Number REPLACING ALL '_' BY LOW-VALUES. CALL 'EDITINT' USING Test-Number Test-Number-Length Validity-Flag. INSPECT Test-Number REPLACING ALL LOW-VALUES BY '_'. IF (Valid-Number) MOVE '- Number edited' TO Comment ELSE MOVE SPACES TO Comment. DISPLAY ' Number after : ' Test-Field ' Validity flag: ' Validity-Flag ' ' Comment.