I tried posting this yesterday but it doesn't look like it made it. Here it is
again...
I use the following for serially reading a file. It only opens the file once and
keeps it open if you invoke it using CIOR. Works for fine for flat files.
:FORREC <MYFILE 'XEQ MYCMDFL !!FORREC_BUF'
PARM CMD='ECHO ![!BUF]', BUF=FORREC_BUF #FORREC
#Serial read a file and execute a CMD for each record. SETVAR HPAUTOCONT_PREV
HPAUTOCONT
SETVAR HPAUTOCONT FALSE
ERRCLEAR
CONTINUE
WHILE CIERROR = OK
SETVAR HPMSGFENCE 2
INPUT !BUF
SETVAR HPMSGFENCE 0
SETVAR !BUF RTRIM (LTRIM (!BUF))
CONTINUE
!CMD
ENDWHILE
SETVAR HPMSGFENCE 0
SETVAR HPAUTOCONT HPAUTOCONT_PREV
DELETEVAR HPAUTOCONT_PREV
#end