|
On Sat, 1 Dec 2001, Richard Reeve wrote:
> All,
>
> I am having a problem with an array in RPG
> (caused mainly by my ignorance where RPG is concerned
> since I am a COBOL kind of guy!). What I am trying to
> do is to read a file and load an array that will have
> 2 elements - a legacy hold code (2 positions) and a
> MHS hold code (2 positions). I then want to do a
> lookup on this array by MHS hold code and find the
> corresponding legacy hold code (later in the program).
>
> Could someone be kind enough to coach me through
> this? I will be forever greatful.
>
> Rich
>
Here's the way that I'd do something like that...
FHOLDCODES IF E K DISK
D MHS S 2A DIM(500)
D LEG S 2A DIM(500)
D ArraySize S 10I 0
D Index S 10I 0
D Result S 2A
D code S 2A
** Sample of loading the arrays from a file
**
** This assumes that you want to load the whole file, and
** that the two fields in the file are "mhs_from_file" and
** "legacy_from_file".
**
** You'll have to adjust it to fit the details of your app.
c *start setll HOLDCODES
c read HOLDCODES
c dow not %eof(HOLDCODES)
c eval ArraySize = ArraySize + 1
c eval MHS(ArraySize) = mhs_from_file
c eval LEG(ArraySize) = legacy_from_file
c read HOLDCODES
c enddo
**
** Here is a sample of doing a lookup:
**
** The output of this will be that "Index" will be set to the
** position in the array of the matching code, and indicator
** 10 will be on when the lookup succeeds, or off otherwise.
**
** Note that the "10" is in the "Eq" position. This means we
** are only looking up items in MHS that are the same as
** the contents of the "code" variable.
**
C eval Index = 1
c code lookup MHS(Index) 10
c if *in10 = *Off
C* ... no matching code found ...
c else
c eval result = LEG(Index)
c endif
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.