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;

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.