Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Validating COBOL program for space Free

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> COBOL Programming
View previous topic :: :: View next topic  
Author Message
rajivtechno

New User


Joined: 05 Apr 2005
Posts: 17
Location: Bangalore

PostPosted: Thu Sep 21, 2006 5:27 pm    Post subject: Validating COBOL program for space Free
Reply with quote

i need to validate fields in a cics cobol programe...

Extraneous spaces are not allowed

Extraneous Spaces will be defined as

 Any spaces at the beginning of a field before the first non-space character
 More than one space in between any two non-space characters within a field

input data need to be parsed and extraneous spaces removed. ..
i e in fields like name , address etc... if any extraneous space is there then it should be parsed
Back to top
View user's profile Send private message

UmeySan

Active Member


Joined: 22 Aug 2006
Posts: 757
Location: Germany

PostPosted: Thu Sep 21, 2006 7:22 pm    Post subject: Re: validation programe
Reply with quote

Hi !

You could use INSPECT and STRING to do this validation.

Regards, UmeySan
Back to top
View user's profile Send private message
DavidatK

Active Member


Joined: 22 Nov 2005
Posts: 700
Location: Troy, Michigan USA

PostPosted: Fri Sep 22, 2006 12:42 am    Post subject: Re: Validating COBOL program for space Free
Reply with quote

rajivtechno,

here is a solution you can probably adapt.

Code:

WORKING-STORAGE SECTION.                                         
                                                                 
01  VAR1                        PIC X(40)      VALUE             
    '  NOW IS  THE   TIME FOR ALL  GOOD MEN T'.                 
01  WS-LEN                      PIC S9(5)      COMP-3 VALUE 0.   
01  WS-SUB-1                    PIC S9(5)      COMP-3 VALUE 0.   
01  WS-SUB-2                    PIC S9(5)      COMP-3 VALUE 0.   
01  WS-SPACE-CNT                PIC S9(5)      COMP-3 VALUE 0.   
                                                                 
LINKAGE SECTION.                                                 
                                                                 
PROCEDURE DIVISION.                                             
                                                                 
PROGRAM-START.                                                   
                                                                 
    MOVE LENGTH OF VAR1         TO WS-LEN.                       
                                                                 
    DISPLAY 'VAR1 >' VAR1 '<'.                                   
                                                                 
    MOVE +1                     TO WS-SPACE-CNT.                   

    PERFORM                                                         
      VARYING WS-SUB-1 FROM 1 BY 1                                 
      UNTIL WS-SUB-1 > WS-LEN                                       
        IF VAR1(WS-SUB-1:1) = ' '                                   
        THEN                                                       
            IF WS-SPACE-CNT > 0                                     
            THEN                                                   
                CONTINUE                                           
            ELSE                                                   
                ADD +1          TO WS-SUB-2                         
                MOVE ' '        TO VAR1(WS-SUB-2:1)                 
                ADD +1          TO WS-SPACE-CNT                     
            END-IF                                                 
        ELSE                                                       
            ADD +1              TO WS-SUB-2                         
            MOVE VAR1(WS-SUB-1:1)                                   
                                TO VAR1(WS-SUB-2:1)                 
            MOVE +0             TO WS-SPACE-CNT             
        END-IF                                               
    END-PERFORM.                                             
                                                             
    ADD +1                      TO WS-SUB-2                 
    IF WS-SUB-2 <= WS-LEN                                   
    THEN                                                     
        COMPUTE WS-LEN = WS-LEN - WS-SUB-2 + 1               
        MOVE ' '                TO VAR1(WS-SUB-2:WS-LEN)     
    END-IF.                                                 
                                                             
    DISPLAY 'VAR1 >' VAR1 '<'.                               


Code:

VAR1 >  NOW IS  THE   TIME FOR ALL  GOOD MEN T<
VAR1 >NOW IS THE TIME FOR ALL GOOD MEN T      <


Dave
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> COBOL Programming All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts IEW2456E error when link-editing a C ... Senthilraj JCL & VSAM 0 Fri Oct 13, 2017 3:12 pm
No new posts How to write Rexx program to size and... sreejeshcs CLIST & REXX 14 Thu Oct 12, 2017 7:26 am
No new posts Accessing CICS tran with map from JCL... navdeepaggarwal CICS 5 Tue Oct 03, 2017 6:15 pm
No new posts Assembler Macro Copybook converted to... Ziquilix PL/I & Assembler 4 Tue Sep 26, 2017 3:07 am
No new posts The TS7720 is out of cache space. Rex Montemayor All Other Mainframe Topics 2 Mon Sep 25, 2017 7:18 am

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us