IBM MAINFRAME HELP & SUPPORT FORUMS
Technical Forums for IBM Mainframe Applications like COBOL, JCL, CICS, DB2, FileAid, DFSORT, Endevor, Xpediter, CoolGen, CA-7&11, AbendAid, IMS, IDMS, PL/I, MqSeries, SyncSort, Assembler, ChangeMan, Easytrieve, InterTest, REXX, CLIST etc...
 

Performing arithmetic operation on a string variable.

THIS IS AN ARCHIVE FORUM: CLICK HERE TO GO TO THE ORIGINAL TOPIC

 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> CLIST & REXX
View previous topic :: View next topic  
Author Message
vissubhai



Joined: 07 Nov 2007
Posts: 8
Location: Hyderabad

Posted: Wed Aug 06, 2008 10:46 am    Post subject: Performing arithmetic operation on a string variable.  

Hi All...this is Viswanath. Nice to see various complex REXX problems and their solutions here.

Coming to my problem...

I have an input file which is a basic EZT macro for a file record layout. That is my input file is a FB file with lrecl=80. And it contains:

FIELD-NAME START-POSN LENGTH DATA-TYPE
FILE1-RECORD 1 100 A
FILE1-COUNTRY 1 10 A
FILE1-GROUP 11 8 N

etc.

Now reading this file sequentially, I am creating a SORT SYMNAMES(symbolic names)

That is my output file should be like:
FILE1-RECORD,1,100,CH
FILE1-COUNTRY,1,10,CH
FILE1-GROUP,11,8,ZD etc.

I am using the WORD function to extract the field-name, starting-position, length, and the data-type like:

varName = word(OUTLOG.i,1)
starPos = word(OUTLOG.i,2)
varLen = word(OUTLOG.i,3)
varType = word(OUTLOG.i,4)

and then concatenating the above variables with commas like:

outrec = varName || ',' || startPos || ',' || varLen || ',' || varType

The problem is for variable length files, we need to add 4 for the starting-position field becaus of RDW(Record descriptor word).

That is I need to add 4 for the starPos field. As this is a string variable, it is giving me "Bad arithmetic conversion" abend.

Can anyone help me out if I can perform this addition on this string field.

Let me know if you require more information. Awaiting for your response.

Thanks in Advance,
Vissubhai.
Back to top  
expat



Joined: 14 Mar 2007
Posts: 3544
Location: Brussels once more ...

Posted: Wed Aug 06, 2008 12:05 pm    Post subject:  

Why not use the TRANSLATE function to translate all of the nasty blank spaces into loveable little commas ?
Back to top  
Pedro



Joined: 01 Sep 2006
Posts: 536
Location: work

Posted: Wed Aug 06, 2008 10:27 pm    Post subject: Reply to: Performing arithmetic operation on a string variab  

Perhaps you have a data record that does not have numeric value there??

Use TRACE to determine what is wrong with data.
Back to top  
dbzTHEdinosauer



Joined: 20 Oct 2006
Posts: 1639
Location: germany

Posted: Wed Aug 06, 2008 10:29 pm    Post subject:  

how are you initializing start pos? '0' or 0?
Back to top  
 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> CLIST & REXX
Page 1 of 1
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM