Yes, Kebbon. Years ago, I hit this difference when contemplating a PI to UD migration. My fix isn't not very pretty to read, but it made conversion easier. If I didn't have the construct to convert, I don't know that I would use it, except that it's a nice bit of functionality.

Off the top of my head, I think I wrote a complementary pair of utility subroutines to invent, manipulation & reference my own buffers. Using labeled common that got reinitialized whenever @TIME changed (i.e., the beginning of any new uniQuery execution), PI's: 002: @1...@record<8>
became something like:
 002: SUBR( 'PUTBUF', 1, (   SUBR('GETBUF',1) + @RECORD<8>))

or  perhaps more readable:

  002:  SUBR('GETBUF', 1); @ + @RECORD<8>;  SUBR('PUTBUF', 1, @ )


By the way, it has always been an "undocumented feature" in Prime & UV, but recent versions on UV

The subroutines must have looked something like this:

SUB GETBUF( OUTARG, BUFNO )
COMMON /IDESCBUFS/ AT.TIME, BUF(10)
IF AT.TIME # @TIME THEN
  MAT BUF = ''
  AT.TIME = @TIME
END
IF BUFNO isnt between 1-10,  oops
OUTARG = BUF( BUFNO )
RETURN

SUB PUTBUF( OUTARG, BUFNO, INARG )
COMMON /IDESCBUFS/ AT.TIME, BUF(10)
IF AT.TIME # @TIME THEN
  MAT BUF = ''
  AT.TIME = @TIME
END
if BUFNO isnt between 1-10,  oops
BUF( BUFNO ) = INARG
OUTARG = INARG ; * pass through
RETURN


I read this with great interest as I have an identical requirement.  However, I 
use Unidata and this technique does not seem to work, in either ECLTYPE.  Does 
anybody have a UDT solution?
rom: [email protected]

Try this...  This will show the running total for every printed line
ED DICT FILENAME RUNNING.TOTAL
0001: I
0002: @1...@record<8>
0003: MD2
0004: RUNNING TOT
0005: 10R
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to