View previous topic :: View next topic
|
Author |
Message |
beruoist
New User
Joined: 14 Nov 2007 Posts: 70 Location: mumbai
|
|
|
|
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 |
|
|
GuyC
Senior Member
Joined: 11 Aug 2009 Posts: 1281 Location: Belgium
|
|
|
|
old school assembler initialisation
I guess you have to work with a temp field. |
|
Back to top |
|
|
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
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 |
|
|
UmeySan
Active Member
Joined: 22 Aug 2006 Posts: 771 Location: Germany
|
|
|
|
Morning Sir !
I'm just thinking about using Unstring/String command with the Pointer option ... |
|
Back to top |
|
|
|