× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I'd go one line further to prevent it from trying to copy a line to itself:

x = 0; // more clear than 'Clear'
For i = 1 to %elem( Line );
If Line(i) <> *blanks;
x += 1;
If i <> x; // x can't get larger than i
Line(x) = Line(i);
Clear Line(i);
Endif;
EndIf;
EndFor;

Mark Murphy
STAR BASE Consulting, Inc.
mmurphy@xxxxxxxxxxxxxxx

-----rpg400-l-bounces@xxxxxxxxxxxx wrote: -----
To: RPG programming on the IBM i / System i <rpg400-l@xxxxxxxxxxxx>
From: Kurt Anderson
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
Date: 04/26/2011 03:10PM
Subject: RE: Filling an array from the first occurrence on down

Good change there, Alan.  My code would have laboofinated the array if there were no blank elements.

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Alan Shore
Sent: Tuesday, April 26, 2011 1:59 PM
To: RPG programming on the IBM i / System i
Subject: RE: Filling an array from the first occurrence on down

Thanks for your reply Kurt
Your example was FAR, FAR simpler than some of the concoctions that I created Embarrassment forbids me from posting some of the examples Suffice it to say that Dr Frankenstein would have been proud of some of my creations/monstrosities I just needed to make one change Here is what I am presently testing

Clear x;
For i  = 1 to %elem( Line );
   If Line(i) <> *blanks;
      X += 1;
     Line(x) = Line(i);
     If i > x;
       Clear Line(i);
      Endif;
    EndIf;
EndFor;

MUCH appreciated
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 Kurt Anderson
Sent: Tuesday, April 26, 2011 2:27 PM
To: RPG programming on the IBM i / System i
Subject: RE: Filling an array from the first occurrence on down

I think this will do it.  Not tested.  This is assuming the non-blank data is already sorted, just that there are blank elements mixed in.

Clear x;
For i  = 1 to %elem( Line )
   If Line(i) <> *blanks;
      X += 1;
     Line(x) = Line(i);
     Clear Line(i);
   EndIf;
EndFor;

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Alan Shore
Sent: Tuesday, April 26, 2011 1:21 PM
To: 'rpg400-l@xxxxxxxxxxxx'
Subject: Filling an array from the first occurrence on down

Hi everyone
I'm having one of those days where no matter what I do, I just cannot get my head around what should be a simple problem Hopefully someone is kind enough to provide an answer I have an array
D LINE            S             30    DIM(6)

Data can be in any combination of the occurrences (or none at all) I need to create logic so that data is moved down to fill in from the first, through the second, then third etc., until the only blanks are in the trailing occurrences

Hopefully I explained it correctly, here is an example
1
2    data 1
3
4
5   data here
6  f=data 2

Becomes
1 data 1
2 data here
3 f=data 2
4
5
6
NOTE - I don't want the information sorted, just moved up As always, any and all responses gratefully appreciated

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

--

--

--


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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.