IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Insert a record in a variable at particular position


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
beruoist

New User


Joined: 14 Nov 2007
Posts: 70
Location: mumbai

PostPosted: Tue Mar 23, 2010 1:19 pm
Reply with quote

Hi Guys,

I need to scan a variable ( Pic X 20000) for a keyword '{108' and then insert 'HI' in the 7th position from '{108'.Also its not necessar that #VAR (pic X 20000) will have all 20000 chars occupied.

Now here is the code which i had applied for this.

Code:
MOVE 'N' TO WS-108-FOUND                     
PERFORM VARYING WS-108-POS FROM 1 BY 1       
                     UNTIL WS-108-POS > 19980 OR           
                              WS-108-FOUND-YES               
IF #VAR(WS-108-POS : 4) = '{108'           
MOVE 'Y' TO WS-108-FOUND                               
MOVE #VAR(WS-108-POS + 11 :19980 )   
TO #VAR(WS-108-POS + 13 :19980 )   
MOVE 'HI' TO #VAR(WS-108-POS + 11 :2)
end-if
end-perform


Now the issue is,Until population of U2,its coming fine but whatever variable is appearing after that is reapeating till the end instead of the orignal data.

For example

INPUT IS
{ASBDASDSDKJAKSDJKASJDKASD{108:12345}ABCDEFGHIJKLMNOPQRST}

OUTPUT
{ASBDASDSDKJAKSDJKASJDKASD{108:12345HI}}}}}}}}}}}}}}}}}}


Thanks in advane guys.
Back to top
View user's profile Send private message
GuyC

Senior Member


Joined: 11 Aug 2009
Posts: 1281
Location: Belgium

PostPosted: Tue Mar 23, 2010 4:11 pm
Reply with quote

old school assembler initialisation icon_wink.gif
I guess you have to work with a temp field.
Back to top
View user's profile Send private message
CICS Guy

Senior Member


Joined: 18 Jul 2007
Posts: 2146
Location: At my coffee table

PostPosted: Wed Mar 24, 2010 12:18 am
Reply with quote

As GuyC stated (sort of), an overlapping move is a basic assembler initialization technique.
the COBOL MOVE is an assembler MVC which is processed from left to right.
I am suprised that with the two byte displacement you are not getting something like:
Code:
{ASBDASDSDKJAKSDJKASJDKASD{108:12345HI}A}A}A}A}A}A}A}A}A}A...
Back to top
View user's profile Send private message
UmeySan

Active Member


Joined: 22 Aug 2006
Posts: 771
Location: Germany

PostPosted: Wed Mar 24, 2010 2:30 pm
Reply with quote

Morning Sir !

I'm just thinking about using Unstring/String command with the Pointer option ...
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts INCLUDE OMIT COND for Multiple values... DFSORT/ICETOOL 5
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
Search our Forums:

Back to Top