Home      Mainframe Forum      Mainfarme Tutorials      IBM Manuals      Mainframe Interview Questions      Mainframe Books      IT News     SiteMap     Downloads


     
 
MAINFRAME - TIP OF THE DAY : When you specified V for RECFM parameter, LRECL value is largest record in the file plus 4 bytes. These four bytes contain the actual length of each variable length record in the file

Google
 
Web mainframegurukul.com

formatting a numeric field in input file

 
Post new topic   Reply to topic    mainframegurukul.com Forum Index -> DFSORT , ICETOOL & Utilities
  View previous topic :: View next topic  
Author Message
BANUREKHAB
Member


Joined: 08 Nov 2012
Posts: 6

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Fri Sep 02, 2016 12:17 am    Post subject: formatting a numeric field in input file Reply with quote

Hi,

we get a input file from a different appilcation in the below format, X(18 byte

-131.1
290.05
265.07
251.52
252.37
281.78
304.78
421.37
418.1
354.66
361.05
254.33
277.33
68.64
125


My requirement is to convert this in to s9(16)v9(2) format. Is this possible. Please help.
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.

magesh_j
Member


Joined: 31 Aug 2016
Posts: 16

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Fri Sep 02, 2016 7:36 am    Post subject: Reply with quote

Assuming LRECL=80, use the below code
Code:

OPTION COPY                                                         
INREC IFTHEN=(WHEN=(1,1,CH,EQ,C'-'),                                 
              PARSE=(%00=(ENDBEFR=C'.',ENDBEFR=C' ',FIXLEN=16,PAIR=QUOTE),       
                     %01=(FIXLEN=2)),                               
              BUILD=(%00,UFF,ZD,LENGTH=16,                           
                     %01,81:C'-')),                                 
                                                                     
       IFTHEN=(WHEN=NONE,                                           
               PARSE=(%02=(ENDBEFR=C'.',ENDBEFR=C' ',FIXLEN=16,PAIR=QUOTE),       
                      %03=(FIXLEN=2)),                               
               BUILD=(%02,UFF,ZD,LENGTH=16,                         
                      %03,81:C' '))                                 
                                                                     
OUTREC IFTHEN=(WHEN=(17,2,CH,EQ,C' '),OVERLAY=(17:C'00'),HIT=NEXT), 
                                                                     
       IFTHEN=(WHEN=(18,1,CH,EQ,C' '),OVERLAY=(18:C'0'),HIT=NEXT),   
                                                                     
       IFTHEN=(WHEN=(81,1,CH,EQ,C'-'),                               
               OVERLAY=(1,18,ZD,MUL,-1,ZD,LENGTH=18)),               
       IFOUTLEN=80                                                                                       


Thanks
Magesh
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
magesh_j
Member


Joined: 31 Aug 2016
Posts: 16

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Sat Sep 03, 2016 5:39 am    Post subject: Reply with quote

BANUREKHAB,
Also let us know if you need
Code:

418.1 to be 418.10

or

418.1 to be 418.01



I assumed to be

Code:

418.1 to be 418.10


Regards,
Magesh
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
William Collins
Active Member


Joined: 24 May 2012
Posts: 732

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Mon Sep 05, 2016 10:22 am    Post subject: Reply with quote

For reversing the sign of a value, subtracting from zero is more efficient than multiply by minus one.
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
magesh_j
Member


Joined: 31 Aug 2016
Posts: 16

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Mon Sep 05, 2016 7:38 pm    Post subject: Reply with quote

Also we can move the values and decimal and symbol seperately in 81:%00,%01,c'+1'

IFThen=(when=(1,16,ss,eq,c'-'),overlay=(99:c'-'))

Then read 81,19,sff,zd,length=18 will make more easy.

We haven't got anything from op. Left as is.

Thanks
Magesh
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
BANUREKHAB
Member


Joined: 08 Nov 2012
Posts: 6

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Tue Sep 06, 2016 8:48 pm    Post subject: Reply with quote

Thank you very much and very sorry for the late reply. This is exactly what i needed.

My input file,

100402.24
1006961.9
103761.05
-100.31
170855.35
183
-159711.81
155213.69
152236.93
161383.16

After using the sort provided,

SORT FIELDS=COPY
INREC IFTHEN=(WHEN=(1,1,CH,EQ,C'-'),
PARSE=(%00=(ENDBEFR=C'.',ENDBEFR=C' ',FIXLEN=16,PAIR=QUOTE),
%01=(FIXLEN=2)),
BUILD=(%00,UFF,ZD,LENGTH=16,%01,81:C'-')),
IFTHEN=(WHEN=NONE,
PARSE=(%02=(ENDBEFR=C'.',ENDBEFR=C' ',FIXLEN=16,PAIR=QUOTE),
%03=(FIXLEN=2)),
BUILD=(%02,UFF,ZD,LENGTH=16,%03,81:C' '))
OUTREC IFTHEN=(WHEN=(17,2,CH,EQ,C' '),OVERLAY=(17:C'00'),HIT=NEXT),
IFTHEN=(WHEN=(18,1,CH,EQ,C' '),OVERLAY=(18:C'0'),HIT=NEXT),
IFTHEN=(WHEN=(81,1,CH,EQ,C'-'),
OVERLAY=(1,18,ZD,SUB,-0,ZD,LENGTH=18 )),
IFOUTLEN=400

Output:
000000000010040224
000000000100696190
000000000010376105
00000000000001003J
000000000017085535
000000000000018300
00000000001597118J
000000000015521369
000000000015223693
000000000016138316


Thank you again. I will modify it for subtract from zero instead of multiplying by -1.
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
magesh_j
Member


Joined: 31 Aug 2016
Posts: 16

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Tue Sep 06, 2016 9:22 pm    Post subject: Reply with quote

BANUREKHAB,

Start using code tags. which will help people to read it better.

Code:

[ code ] ur code [ / code ]



Regards,
Magesh
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
magesh_j
Member


Joined: 31 Aug 2016
Posts: 16

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Tue Sep 06, 2016 9:22 pm    Post subject: Reply with quote

BANUREKHAB,

Start using code tags. which will help people to read it better.

Code:

[ code ] ur code [ / code ]



Regards,
Magesh
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
Display posts from previous:   
Post new topic   Reply to topic    mainframegurukul.com Forum Index -> DFSORT , ICETOOL & Utilities 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


Cobol Tutorial
This cobol tutorial covers most of the important topics like STRING, UNSTRING, COMP, COMP-3.....
DB2 Tutorial
DB2 Tutorial focuses on DB2 COBOL Programming. Explains in simple language. Some Chapters are locked, Forum members have free access to these chapters
CICS Tutorial
This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming...
JCL Tutorial
This is most popular JCL tutorial from mainframegurukul. It does contain important jcl ....
SORT Tutorial
This Tutorial covers all important aspects of DFSORT. Has more SORT examples
INTERVIEW Questions
This page covers important interview questions
Mainframe Jobs
Mainframe Jobs posted by members of mainframegurukul forum
FaceBook Page
MainframeGurukul FaceBook Page
LinkedIn Page
MainframeGurkul Linkedin Page

This widget requires Flash Player 9 or better







Go to top of the page
 

Online ABEND Reference ||  JCL References ||  COBOL References ||  VSAM References ||  Tutorials by Drona Series ||  SQL tutorial ||  BOOKS  ||  DB2 INTERVIEW QUESTIONS ||  COBOL INTERVIEW QUESTIONS  ||  JCL INTERVIEW QUESTIONS ||  JCL2 INTERVIEW QUESTIONS ||  VSAM INTERVIEW QUESTIONS ||  CICS INTERVIEW QUESTIONS  ||  Online tutorials ||  Online ABEND Reference ||  JCL References ||  COBOL References ||  VSAM References ||  Tutorials by Drona Series ||  SQL tutorial ||  BOOKS  ||  SiteMap  ||  Expeditor Tutorial  ||  FILE-AID Tutorial  ||  Changeman Tutorial  ||  COBOL   ||  DB2   ||  JCL  ||  CICS  ||  VSAM  ||  DB2 Interview Questions ( 110 )   || Simple JCL Tutorials  || JCL Tutorial from MainframeGurukul.com   || Simple JCL Tutorial - Chapter1 ;|| Mainframe Forum - Tutorials  || Mainframe Tutorials || Mainframe CICS tutorial|| Mainframe COBOL Tutorial

Drona Educational Forums - Mainframe Cobol DB2 CICS Board
Powered by phpBB

mainframetopic-8345.html