|
We're trying to write a generic Open Access RPG handler which will process
Excel files. We started this a few months ago, then get side-tracked and had
to put it down, but are now returning to it.
We're trying to work out how to tell which file in the calling program a
particular handler call relates to, with absolute certainty, and think
there's a potential (though unlikely) situation where that is not possible
(unless we're missing something).
Assume F-specs something like these:
FXL_Intfce1IF E DISK HANDLER('XL_HANDLER':XL_UserArea)
F USROPN
F RENAME(XL_IntFceR:IntfceR1)
F PREFIX(i1)
FXL_Intfce2IF E DISK HANDLER('XL_HANDLER':XL_UserArea)
F USROPN
F RENAME(XL_IntFceR:IntfceR2)
F PREFIX(i2)
F EXTFILE('XLINTFCE1')
Then assume that at compile time, XL_INTFCE2 was overridden to XL_INTFCE1.
The same handler is being used for both files. When the handler receives a
call relating to an IO operation on either of these two files, so far as we
can see the information provided does not allow us to distinguish between
them: the external file is set to XL_INTFCE1 in both cases, as is the
compiled-against file name.
I acknowledge that this is not likely to be a problem 99.9999% of the time,
but wouldn't things be much clearer, and probably more efficient, if the
handler were passed some kind of file identifier, e.g. an integer denoting
the particular F-spec being processed? We cant even see that the name of the
file as used in the RPG program is passed. What we get are the name of the
actual file to be used (externalFile) and the file compiled against
(compileFile).
We plan to store a set of internal file handles for processing the various
files, but at the moment can't see how we can be completely sure which
handle to select. As it stands, we think the best we can do is use either
the externalFile details or the compileFile details or maybe a combination
of the two.
I'm hoping Barbara or someone can offer some advice here.
Pete
As an Amazon Associate we earn from qualifying purchases.
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.