×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




sjl wrote:
One of my co-workers is writing a program in which he needs to access several different fields within a record in a file depending on a soft-coded criteria that is fed into the program
<snip>
The file has six different date fields:
<snip>
So, if WHICHDATE = 'DATE1', he wants the pointer to reference the address of field DATE1, if WHICHDATE = 'DATE2', he wants the pointer to reference the address of field DATE2, etc.

The way I'd do it is to create a field, say selectedDate, like so:

D selectedDate...
D S based(pSelectedDate)

then
/free
select;
when whichDate = 'DATE1';
pSelectedDate = %addr(date1);

when whichDate = 'DATE2';
pSelectedDate = %addr(date2);

// ... and so on
endsl;
/end-free

Does this even make sense? Is this possible?
As for me, I'd just use SELECT...

I would use a straightforward SELECT if I only need to use the date in one or two places. However, if the SELECT block needed to be duplicated in a number of places, I think the pointer logic is more elegant. Even better, if the program structure allows it, would be to put all the date logic in a procedure, then use SELECT to pass the correct date to the procedure.

Hope this helps,
Adam

This thread ...


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

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.