MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Left Justify Data in a Sequential File

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF
View previous topic :: View next topic  
Author Message
akshaj
Beginner


Joined: 30 Dec 2002
Posts: 12
Topics: 8

PostPosted: Tue Dec 31, 2002 9:29 am    Post subject: Left Justify Data in a Sequential File Reply with quote

Code:

/**  REXX -- LEFT JUSTIFIES DATA USING CC/C## RANGE OR DEFAULTS  **/
/*           TO ENTIRE FILE; ACCEPTS COLUMNS OR USES ISPF BOUNDS */

   SAVEMSG = MSG()
   X = MSG("OFF")
   X = ADDRESS()
   SUBCOM ISPEXEC
   IF RC <> 0 THEN DO
      SAY "LJUST MUST BE RUN UNDER ISPF EDIT!"
      SIGNAL QUIT
      END
   SUBCOM ISREDIT
   UMODE = "ISREDIT"
   ADDRESS ISPEXEC "CONTROL ERRORS RETURN"
   ADDRESS ISREDIT
   "MACRO (LEFT,RIGHT) NOPROCESS"
   IF LEFT = '?' THEN SIGNAL DISPDOC

   IF LEFT <> "" AND RIGHT = "" THEN DO
      "ISREDIT (L2,RIGHT) = BOUNDS"
      END

   "PROCESS RANGE C"
   IF RC > 0 THEN DO
      "(TOP) = LINENUM .ZFIRST"
      "(BOT) = LINENUM .ZLAST"
   END
   ELSE DO
      "(TOP) = LINENUM .ZFRANGE"
      "(BOT) = LINENUM .ZLRANGE"
   END

   "ISREDIT("LB","RB") = BOUNDS"
   IF LEFT  <> "" THEN LB = LEFT
   IF RIGHT <> "" THEN RB = RIGHT

   DO II = TOP TO BOT BY 1
      "ISREDIT (RECORD) = LINE &II"
      DO JJ = LB TO RB BY 1 WHILE(SUBSTR(RECORD,JJ,1) = ' ')
         END
      IF LB < JJ THEN DO
         RECORD = SUBSTR(RECORD,1,LB-1) || SUBSTR(RECORD,JJ,RB-JJ+1),
            || SUBSTR(RECORD,LB,JJ-LB)  || SUBSTR(RECORD,RB+1)
         "ISREDIT LINE &II = &STR(RECORD)"
         END
      END

QUIT:
   ADDRESS ISPEXEC
   X = MSG(SAVEMSG)
   ADDRESS ISREDIT "LOCATE" TOP
   EXIT(1)

DISPDOC:
   ADDRESS TSO "CLEAR"
   SAY "LJUST - LEFT JUSTIFY TEXT W/IN BOUNDS                    "
   SAY
   SAY " FORMAT "
   SAY
   SAY "    LJUST   ( LEFT-COLUMN  RIGHT-COLUMN )                "
   SAY
   SAY "       WILL CAUSE THE MARKED (VIA C/CC/C##) RANGE OF     "
   SAY "       LINES TO BE LEFT JUSTIFIED WITHIN THE BOUNDS THEN "
   SAY "       IN FORCE.  IF NO RANGE IS SPECIFIED, THE ENTIRE   "
   SAY "       FILE IS PROCESSED.  THE FIRST AND THE LAST        "
   SAY "       NON-BLANK CHARACTERS WITHIN THE BOUNDS DETERMINE  "
   SAY "       THE SIZE OF THE DATA TO BE LEFT JUSTIFIED.        "
   SAY "       SPECIFYING A LEFT COLUMN AND LEFT COLUMN WILL     "
   SAY "       CAUSE ONLY THE DATA IN THOSE COLUMNS TO BE        "
   SAY "       JUSTIFIED.                                        "
   SAY
   SAY " EXAMPLE "
   SAY
   SAY "    LJUST  1 50                                          "
   SAY "       WILL CAUSE THE TEST IN COLUMNS 1 THRU 50 TO BE    "
   SAY "       SHIFTED LEFT SO THAT THE FIRST NON BLANK IN THOSE "
   SAY "       COLUMNS WILL BE IN POSITION 1.                    "
   SAY
   EXIT(1)



**


Hope this would be really helpful
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group