Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

How i will calculate the Length of DCLGEN name

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> TSO/ISPF
View previous topic :: :: View next topic  
Author Message
rakesh pattanayak

New User


Joined: 29 May 2007
Posts: 16
Location: bangalore

PostPosted: Thu Aug 02, 2007 6:51 pm    Post subject: How i will calculate the Length of DCLGEN name
Reply with quote

Hi,
i have one requirement where i want to know the length of cpybook and length of DCLGEN variable.


for copy book variable i got the length.

since a copybook declaration is like

COPY <NAME>.

so i first find the first blank space then for the "." (period).
then the difference gave me the length.


but for Include we dont code like

INCLUDE <DCLGEN NAME > .

simply include <dclgen>

so what should be my logic.?

i am giving the code for getting the length of copybook variable and browsing it.

please help me how i can i calculate that for DCLGEN


Code:
/************REXX******************/                                    00010000
/****************************************************************/      00011001
/*THIS  TOOL  IS  USED TO  OPEN  THE  copybook INCLUDED IN  THE */      00012000
/*COBOL  CODE  THEN  AND  THERE ,            */      00013000
/*                                                                               */      00014000
/* AUTHOR :                                                     */      00014103
/*                                                              */      00014203
/****************************************************************/      00015001
/*             MODIFICATION LOG                                 */      00016001
/****************************************************************/      00017001
/*  USER             DATE              REASON                   */      00018001
/*                                                              */      00019001
/****************************************************************/      00019101
/****************************************************************/      00019201
/*IMPORTANT  VARIABLES USED :                                   */      00019301
/*LREC                                                          */      00019401
/*TEXTLINE                                                     */       00019502
/*START_POS                                                     */      00019601
/*MEMBER_LEN                                                    */      00019701
/*MEMBER_NAME                                                   */      00019801
/****************************************************************/      00019901
"ISREDIT MACRO"                                                         00020000
/****************************************************************/      00020100
/*NO. OF  BYTES ARE  STORED  IN THE  VARIBLE LREC               */      00021000
/****************************************************************/      00022000
LREC = ' '                                                              00030000
"ISREDIT (LREC) = LRECL"                                                00040000
/****************************************************************/      00041000
/*FOR CURSOR  POSITIONING  THE VARIABLES R1; C1; C2; C3 ARE     */      00042000
/* INITIALIZED  TO  BLANKS                                      */      00043000
/****************************************************************/      00044000
R1 = ' '                                                                00050000
C1 = ' '                                                                00060000
C2 = ' '                                                                00070000
C3 = ' '                                                                00080000
/****************************************************************/      00090000
/*CURSOR POSITION IS INITIALIZED                                */      00091000
/****************************************************************/      00092000
"ISREDIT (R1 C1) = CURSOR"                                              00100000
/****************************************************************/      00110000
/*PRESENCE OF INCLUDE IS TRACED OUT  BY USING  THE FIND COMMAND */      00111000
/****************************************************************/      00112000
"ISREDIT FIND FIRST .ZCSR .ZCSR 'COPY'"                              00120000
/****************************************************************/      00121000
/*VALUE OF THE RETURN CODE  IS TRANSFERRED  TO THE  VARIABLE FRC*/      00122000
/****************************************************************/      00123000
 FRC = RC                                                               00130000
/****************************************************************/      00131000
/*IF THE  FIND FOR INCLUDE  IS  SUCCESSFULL THEN CURSOR GETS    */      00132000
/*THE VALUE  OF THAT POSITION.THEN  THE  PRESENCE  OF ONE BLANK */      00133000
/*AFTER THE INCLUDE WORD IS TRACED OUT.THAT VALUE  IS  STORED IN*/      00140000
/*THE  VARIABLE C2.THEN THE  PRESENCE  OF THE '.' AT THE  END   */      00140100
/*TRACED OUT.THAT  VALUE  IS  STORED  IN THE  VARIABLE  C3      */      00140200
IF FRC = 0                                                              00141000
 THEN                                                                   00150000
 DO                                                                     00160000
"ISREDIT (R1 C1) = CURSOR"                                              00170000
"ISREDIT FIND .ZCSR .ZCSR ' ' "                                         00180000
"ISREDIT (R1 C2) = CURSOR"                                              00190000
"ISREDIT CURSOR =" R1 C1                                                00200000
"ISREDIT FIND FIRST .ZCSR .ZCSR '.' "                                   00210000
                                                                        00220000
FRC = RC                                                                00230000
IF FRC = 0                                                              00240000
THEN                                                                    00250000
"ISREDIT (R1 C3) = CURSOR"                                              00260000
ELSE                                                                    00270000
C3 = LREC                                                               00280000
/****************************************************************/      00281000
/*IF  THERE  WILL BE  ABSENCE  OF  ONE  BLANK THEN  C2 GETS THE */      00282000
/*VALUE STORED  IN  THE VARIABLE C3                             */      00283000
/****************************************************************/      00284000
IF C3 < C2                                                              00290000
THEN  C2 = C3                                                           00300000
/****************************************************************/      00301000
/*THE TEXT  OF  THE WHOLE LINE  IS TRANSFERRED INTO THE VARIABLE*/      00302000
/*NAMED AS LINE1                                                */      00303000
/****************************************************************/      00304000
"ISREDIT (TEXTLINE) = LINE .ZCSR"                                       00310002
/****************************************************************/      00311001
/*THE  TEXT  STRING  IS  SPLITTED BY USING THE  SUBSTR COMMAND  */      00312001
/*FROM  THE  TEXT  STRING  THE  MEMBER  NAME  IS  EXTRACTED  BY */      00313001
/*USING TWO VARIABLES STA AND LEN                               */      00320001
/****************************************************************/      00320101
START_POS = C1 + 8                                                      00321001
MEMBER_LEN = C3 - START_POS                                             00330001
MEMBER_NAME = SUBSTR(TEXTLINE,START_POS,MEMBER_LEN)                     00340002
"ISPEXEC CONTROL ERRORS RETURN"                                         00350000
/****************************************************************/      00351001
/*IF NO MEMBER IS FOUND AFTER THE INCLUDE  THEN  ERROR MESSAGE  */      00352001
/*"CPYBOOK NOT  ENCLOSED"IS  DISPLAYED AS  THE  SHORT MESSAGE    */      00353001
/*AND BY  PRESSING  F1  THE  LONG  ERROR  MESSAGE  IS  DISPLAYED*/      00354001
/*TO  DISPLAY  THE  MESSAGE  WITH AN  ALARM  SOUND ISRZ001 USED */      00355001
/****************************************************************/      00356001
IF MEMBER_NAME = ' ' THEN                                               00360001
DO                                                                      00370000
ZEDSMSG="copybook NOT ENCLOSED"                                         00380000
ZEDLMSG="NAME  OF  THE  cpybook  IS  NOT  SPECIFIED  AFTER  copy"     00390000
ISPEXEC "SETMSG MSG(ISRZ001)"                                           00400000
END                                                                     00410000
ELSE                                                                    00420000
"ISPEXEC BROWSE DATASET('OPERN.CICS1.copylib("MEMBER_NAME")')"           00430001
/*****************************************************************/     00440001
/*THE RETURN CODE  AFTER  THE  BROWSE IS  STORED  IN THE VARIABLE*/     00441001
/* NAMED  AS  BRC.ACCORDINGLY  DEPENDING  ON THE BRC VALUE  ERROR*/     00442001
/*MESSAGES  ARE DISPLAYED.                                       */     00450001
/*****************************************************************/     00450101
BRC = RC                                                                00451001
SELECT                                                                  00460000
/****************************************************************/      00461001
/*IF BRC = 14,   THEN THE  ERROR MESSAGE                        */      00462001
/*"MEMBER NOT  FOUND"IS  DISPLAYED AS  THE  SHORT MESSAGE       */      00463001
/*AND BY  PRESSING  F1  THE  LONG  ERROR  MESSAGE  IS  DISPLAYED*/      00464001
/****************************************************************/      00466001
WHEN  BRC = 14 THEN                                                     00470000
DO                                                                      00480000
ZEDSMSG="MEMBER NOT FOUND"                                              00490000
                                       
END                                                                     00520000
/****************************************************************/      00521001
/*IF BRC = 20,   THEN THE  ERROR MESSAGE                        */      00522001
/*"INVALID MEMBER NAME"IS  DISPLAYED AS  THE  SHORT MESSAGE     */      00523001
/*AND BY  PRESSING  F1  THE  LONG  ERROR  MESSAGE  IS  DISPLAYED*/      00524001
/****************************************************************/      00525001
WHEN  BRC = 20 THEN                                                     00530000
DO                                                                      00540000
ZEDSMSG="INVALID MEMBER NAME"                                           00550000

END                                                                     00580000
/****************************************************************/      00581001
/*IF BRC IS ANY OTHER VALUE   THEN THE  ERROR MESSAGE           */      00582001
/*"ERROR IS  OCCURED"IS  DISPLAYED AS  THE  SHORT MESSAGE       */      00583001
/*AND BY  PRESSING  F1  THE  LONG  ERROR  MESSAGE  IS  DISPLAYED*/      00584001
/****************************************************************/      00585001
WHEN BRC > 0 THEN                                                       00590000
DO                                                                      00600000
ZEDSMSG="ERROR IS OCCURED"                                              00610000

END                                                                     00640000
OTHERWISE NOP                                                           00650000
END                                                                     00660000
END                                                                     00670000
/****************************************************************/      00671001
/*TO  GET  A REFRESHED SCREEN AFTER  WE COME  BACK  FROM THE    */      00672001
/*CPYBOOK  SCREEN  WE  HAVE  TO  USE THE  RESET  COMMAND         */      00673001
/****************************************************************/      00674001
"ISREDIT RESET FIND"                                                    00680000
EXIT                                                                    00690000
Back to top
View user's profile Send private message

rakesh pattanayak

New User


Joined: 29 May 2007
Posts: 16
Location: bangalore

PostPosted: Thu Aug 02, 2007 6:55 pm    Post subject: Re: How i will calculate the Length of DCLGEN name
Reply with quote

Sorry following is the code
Some change in getting the starting pos


Code:
/************REXX******************/                                    00010000
/****************************************************************/      00011001
/*THIS  TOOL  IS  USED TO  OPEN  THE  copybook INCLUDED IN  THE */      00012000
/*COBOL  CODE  THEN  AND  THERE ,                      */      00014000
/* AUTHOR :                                                     */      00014103
/*                                                              */      00014203
/****************************************************************/      00015001
/*             MODIFICATION LOG                                 */      00016001
/****************************************************************/      00017001
/*  USER             DATE              REASON                   */      00018001
/*                                                              */      00019001
/****************************************************************/      00019101
/****************************************************************/      00019201
/*IMPORTANT  VARIABLES USED :                                   */      00019301
/*LREC                                                          */      00019401
/*TEXTLINE                                                     */       00019502
/*START_POS                                                     */      00019601
/*MEMBER_LEN                                                    */      00019701
/*MEMBER_NAME                                                   */      00019801
/****************************************************************/      00019901
"ISREDIT MACRO"                                                         00020000
/****************************************************************/      00020100
/*NO. OF  BYTES ARE  STORED  IN THE  VARIBLE LREC               */      00021000
/****************************************************************/      00022000
LREC = ' '                                                              00030000
"ISREDIT (LREC) = LRECL"                                                00040000
/****************************************************************/      00041000
/*FOR CURSOR  POSITIONING  THE VARIABLES R1; C1; C2; C3 ARE     */      00042000
/* INITIALIZED  TO  BLANKS                                      */      00043000
/****************************************************************/      00044000
R1 = ' '                                                                00050000
C1 = ' '                                                                00060000
C2 = ' '                                                                00070000
C3 = ' '                                                                00080000
/****************************************************************/      00090000
/*CURSOR POSITION IS INITIALIZED                                */      00091000
/****************************************************************/      00092000
"ISREDIT (R1 C1) = CURSOR"                                              00100000
/****************************************************************/      00110000
/*PRESENCE OF INCLUDE IS TRACED OUT  BY USING  THE FIND COMMAND */      00111000
/****************************************************************/      00112000
"ISREDIT FIND FIRST .ZCSR .ZCSR 'COPY'"                              00120000
/****************************************************************/      00121000
/*VALUE OF THE RETURN CODE  IS TRANSFERRED  TO THE  VARIABLE FRC*/      00122000
/****************************************************************/      00123000
 FRC = RC                                                               00130000
/****************************************************************/      00131000
/*IF THE  FIND FOR INCLUDE  IS  SUCCESSFULL THEN CURSOR GETS    */      00132000
/*THE VALUE  OF THAT POSITION.THEN  THE  PRESENCE  OF ONE BLANK */      00133000
/*AFTER THE INCLUDE WORD IS TRACED OUT.THAT VALUE  IS  STORED IN*/      00140000
/*THE  VARIABLE C2.THEN THE  PRESENCE  OF THE '.' AT THE  END   */      00140100
/*TRACED OUT.THAT  VALUE  IS  STORED  IN THE  VARIABLE  C3      */      00140200
IF FRC = 0                                                              00141000
 THEN                                                                   00150000
 DO                                                                     00160000
"ISREDIT (R1 C1) = CURSOR"                                              00170000
"ISREDIT FIND .ZCSR .ZCSR ' ' "                                         00180000
"ISREDIT (R1 C2) = CURSOR"                                              00190000
"ISREDIT CURSOR =" R1 C1                                                00200000
"ISREDIT FIND FIRST .ZCSR .ZCSR '.' "                                   00210000
                                                                        00220000
FRC = RC                                                                00230000
IF FRC = 0                                                              00240000
THEN                                                                    00250000
"ISREDIT (R1 C3) = CURSOR"                                              00260000
ELSE                                                                    00270000
C3 = LREC                                                               00280000
/****************************************************************/      00281000
/*IF  THERE  WILL BE  ABSENCE  OF  ONE  BLANK THEN  C2 GETS THE */      00282000
/*VALUE STORED  IN  THE VARIABLE C3                             */      00283000
/****************************************************************/      00284000
IF C3 < C2                                                              00290000
THEN  C2 = C3                                                           00300000
/****************************************************************/      00301000
/*THE TEXT  OF  THE WHOLE LINE  IS TRANSFERRED INTO THE VARIABLE*/      00302000
/*NAMED AS LINE1                                                */      00303000
/****************************************************************/      00304000
"ISREDIT (TEXTLINE) = LINE .ZCSR"                                       00310002
/****************************************************************/      00311001
/*THE  TEXT  STRING  IS  SPLITTED BY USING THE  SUBSTR COMMAND  */      00312001
/*FROM  THE  TEXT  STRING  THE  MEMBER  NAME  IS  EXTRACTED  BY */      00313001
/*USING TWO VARIABLES STA AND LEN                               */      00320001
/****************************************************************/      00320101
START_POS = C2 + 1                                                     00321001
MEMBER_LEN = C3 - START_POS                                             00330001
MEMBER_NAME = SUBSTR(TEXTLINE,START_POS,MEMBER_LEN)                     00340002
"ISPEXEC CONTROL ERRORS RETURN"                                         00350000
/****************************************************************/      00351001
/*IF NO MEMBER IS FOUND AFTER THE INCLUDE  THEN  ERROR MESSAGE  */      00352001
/*"CPYBOOK NOT  ENCLOSED"IS  DISPLAYED AS  THE  SHORT MESSAGE    */      00353001
/*AND BY  PRESSING  F1  THE  LONG  ERROR  MESSAGE  IS  DISPLAYED*/      00354001
/*TO  DISPLAY  THE  MESSAGE  WITH AN  ALARM  SOUND ISRZ001 USED */      00355001
/****************************************************************/      00356001
IF MEMBER_NAME = ' ' THEN                                               00360001
DO                                                                      00370000
ZEDSMSG="copybook NOT ENCLOSED"                                         00380000
ZEDLMSG="NAME  OF  THE  cpybook  IS  NOT  SPECIFIED  AFTER  copy"     00390000
ISPEXEC "SETMSG MSG(ISRZ001)"                                           00400000
END                                                                     00410000
ELSE                                                                    00420000
"ISPEXEC BROWSE DATASET('OPERN.CICS1.copylib("MEMBER_NAME")')"           00430001
/*****************************************************************/     00440001
/*THE RETURN CODE  AFTER  THE  BROWSE IS  STORED  IN THE VARIABLE*/     00441001
/* NAMED  AS  BRC.ACCORDINGLY  DEPENDING  ON THE BRC VALUE  ERROR*/     00442001
/*MESSAGES  ARE DISPLAYED.                                       */     00450001
/*****************************************************************/     00450101
BRC = RC                                                                00451001
SELECT                                                                  00460000
/****************************************************************/      00461001
/*IF BRC = 14,   THEN THE  ERROR MESSAGE                        */      00462001
/*"MEMBER NOT  FOUND"IS  DISPLAYED AS  THE  SHORT MESSAGE       */      00463001
/*AND BY  PRESSING  F1  THE  LONG  ERROR  MESSAGE  IS  DISPLAYED*/      00464001
/****************************************************************/      00466001
WHEN  BRC = 14 THEN                                                     00470000
DO                                                                      00480000
ZEDSMSG="MEMBER NOT FOUND"                                              00490000
                                       
END                                                                     00520000
/****************************************************************/      00521001
/*IF BRC = 20,   THEN THE  ERROR MESSAGE                        */      00522001
/*"INVALID MEMBER NAME"IS  DISPLAYED AS  THE  SHORT MESSAGE     */      00523001
/*AND BY  PRESSING  F1  THE  LONG  ERROR  MESSAGE  IS  DISPLAYED*/      00524001
/****************************************************************/      00525001
WHEN  BRC = 20 THEN                                                     00530000
DO                                                                      00540000
ZEDSMSG="INVALID MEMBER NAME"                                           00550000

END                                                                     00580000
/****************************************************************/      00581001
/*IF BRC IS ANY OTHER VALUE   THEN THE  ERROR MESSAGE           */      00582001
/*"ERROR IS  OCCURED"IS  DISPLAYED AS  THE  SHORT MESSAGE       */      00583001
/*AND BY  PRESSING  F1  THE  LONG  ERROR  MESSAGE  IS  DISPLAYED*/      00584001
/****************************************************************/      00585001
WHEN BRC > 0 THEN                                                       00590000
DO                                                                      00600000
ZEDSMSG="ERROR IS OCCURED"                                              00610000

END                                                                     00640000
OTHERWISE NOP                                                           00650000
END                                                                     00660000
END                                                                     00670000
/****************************************************************/      00671001
/*TO  GET  A REFRESHED SCREEN AFTER  WE COME  BACK  FROM THE    */      00672001
/*CPYBOOK  SCREEN  WE  HAVE  TO  USE THE  RESET  COMMAND         */      00673001
/****************************************************************/      00674001
"ISREDIT RESET FIND"                                                    00680000
EXIT                                                                    00690000
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Thu Aug 02, 2007 8:31 pm    Post subject:
Reply with quote

Hello Rakesh,

Would it be helpful if i combined your posts and only included the second set of code? Not a problem and may make the question easier to read icon_smile.gif
Back to top
View user's profile Send private message
rakesh pattanayak

New User


Joined: 29 May 2007
Posts: 16
Location: bangalore

PostPosted: Fri Aug 03, 2007 8:39 am    Post subject:
Reply with quote

yes please.

Thanks,
Rakesh.
Back to top
View user's profile Send private message
rakesh pattanayak

New User


Joined: 29 May 2007
Posts: 16
Location: bangalore

PostPosted: Fri Aug 03, 2007 9:26 am    Post subject:
Reply with quote

i able to fix it .

did some manipulation in finding the 2nd space after inclde keyword and i placed that in C3.

thanks,
Rakesh.
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 -> TSO/ISPF All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Wanted to calculate TRK when i have B... Balu5491 JCL & VSAM 8 Wed Jul 19, 2017 5:43 pm
No new posts Length of Tape file Mohan Kothakota JCL & VSAM 9 Thu Apr 20, 2017 10:24 pm
No new posts Sort Large record length cmsmoon DFSORT/ICETOOL 14 Tue Apr 11, 2017 5:49 pm
No new posts Count the length of the record & ... sreekusr DFSORT/ICETOOL 4 Thu Mar 23, 2017 7:52 pm
No new posts Writing on to GSAM variable length rohanthengal JCL & VSAM 6 Fri Mar 03, 2017 7:46 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us