It works fine for me. Below is a test program:
D lineDS ds
D line 30 dim(6) ctdata
D ix s 5i 0
/free
for ix = %elem(line) downto 1;
if line(ix) = *blank;
lineDS = %replace('' :lineDS :(ix-1)*%size(line)+1
:%size(line));
endif;
endfor;
*inlr = *on;
/end-free
**
line A
line B
line X
line E
Subject: RE: Filling an array from the first occurrence on down
From: Alan Shore <ashore@xxxxxxxx>
Date: Wed, 27 Apr 2011 21:03:12 +0000
------------------------------------------------------------------------
--------
Thanks for the reply, but I don't think that this logic would work for
the following scenario
1 line A
2
3 line B
4
5 line X
6 line E
The 6th occurrence would remain , when the end result that is wanted is
1 line A
2 line B
3 line X
4 line E
Alan Shore
Programmer/Analyst, Direct Response
E:ashore@xxxxxxxx
P:(631) 200-5019
C:(631) 880-8640
"If you're going through Hell, keep going" - Winston Churchill
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Lim Hock-Chai
Sent: Wednesday, April 27, 2011 4:00 PM
To: rpg400-l@xxxxxxxxxxxx
Subject: RE: Filling an array from the first occurrence on down
try this:
D lineDS ds
D line 30 dim(6) ctdata
D ix s 5i 0
/free
for ix = %elem(line) downto 1;
if line(ix) = *blank;
lineDS = %replace('' :lineDS :(ix-1)*%size(line)+1 :%size(line));
endif;
endfor;
This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact
[javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.