× 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.



Jerry,

I think you're on the right track.  personally, I'd try to avoid hard-coding the size/positions of the fields, though.  If the various SlOthCtr1 fields are externally defined, I'd do this:

dcl-ds *n;
  SlOthCtr1;
  SlOthCtr2;
    .
    .
  SlOthCtr28;
  Containers like(SlOthCtr1) dim(28) samepos(SlOthCtr1);
end-ds;

That way, you keep the external definitions of SlOthCtrXX, and the size of Containers will be the same size as well.  Instead of hard-coding the position in the DS, I used SamePos, so if extra stuff is added/removed from the DS, it won't matter.  The only thing that's still hard-coded is the DIM statement,.

The other thing you might consider is using the name SlOthCtr for the array rather than Containers.  That way, someone who is already familiar with the field will recognize it.  They won't have to know/remember that 'Containers' is equivalent.

On 3/12/2021 10:10 AM, (WalzCraft) Jerry Forss wrote:
Hi All,

I know this is a simple question but is escaping me at the moment.

I have a file that contains fields SLOTHCTR1 - SLOTHCTR28, each 40 char.

I want to have these loaded into an array because I need to change some, print label, change again, print and so on.

Changing by index would be immensely less coding then changing the field directly.

This is basically what I what it to look like.

Dcl-DS *n;
Containers Dim(28);
SlOthCtr1 Char(40) Overlay(Containers);
SlOthCtr2 Char(40) Overlay(Containers : *Next);
SlOthCtr3 Char(40) Overlay(Containers : *Next);
SlOthCtr4 Char(40) Overlay(Containers : *Next);
SlOthCtr5 Char(40) Overlay(Containers : *Next);
SlOthCtr6 Char(40) Overlay(Containers : *Next);
SlOthCtr7 Char(40) Overlay(Containers : *Next);
SlOthCtr8 Char(40) Overlay(Containers : *Next);
SlOthCtr9 Char(40) Overlay(Containers : *Next);
SlOthCtr10 Char(40) Overlay(Containers : *Next);
SlOthCtr11 Char(40) Overlay(Containers : *Next);
SlOthCtr12 Char(40) Overlay(Containers : *Next);
SlOthCtr13 Char(40) Overlay(Containers : *Next);
SlOthCtr14 Char(40) Overlay(Containers : *Next);
SlOthCtr15 Char(40) Overlay(Containers : *Next);
SlOthCtr16 Char(40) Overlay(Containers : *Next);
SlOthCtr17 Char(40) Overlay(Containers : *Next);
SlOthCtr18 Char(40) Overlay(Containers : *Next);
SlOthCtr19 Char(40) Overlay(Containers : *Next);
SlOthCtr20 Char(40) Overlay(Containers : *Next);
SlOthCtr21 Char(40) Overlay(Containers : *Next);
SlOthCtr22 Char(40) Overlay(Containers : *Next);
SlOthCtr23 Char(40) Overlay(Containers : *Next);
SlOthCtr24 Char(40) Overlay(Containers : *Next);
SlOthCtr25 Char(40) Overlay(Containers : *Next);
SlOthCtr26 Char(40) Overlay(Containers : *Next);
SlOthCtr27 Char(40) Overlay(Containers : *Next);
SlOthCtr28 Char(40) Overlay(Containers : *Next);
End-Ds;

That way I can change the fields by changing the Containers(x);

What should this look like?




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.