parm f1=funcdata.PUB,SEC="#GENERAL"
SETJCW INSIDEMPEX 0
IF !INSIDEMPEX = 0
XEQ MAIN.PUB.VESOFT;INFO="FUNCKEYS !F1"
RETURN
ENDIF
if not fexists("!f1")
calc writempemessage(2,907)
escape 907
endif
setvar rec_nbr 0
SETVAR OK_PROCESS 0
setvar fnum vefopen("!f1,old;acc=in")
TRAPERROR
while vefreadv("r1",fnum) do
setvar key_label '![lft("!r1",16)]'
setvar key_def '![rht("!r1",64)]'
IF "!SEC" = "![RTRIM('!R1',' ')]"
SETVAR OK_PROCESS 1
ELSE
if !OK_PROCESS = 1
setvar rec_nbr rec_nbr + 1
if !REC_NBR <= 8
setvar stmt "![CHR(27)]&f2a![rec_nbr]"
setvar stmt "!stmt"+"k16d64L!key_label!key_def![CHR(27)]&jB"
echo !stmt
ENDIF
endif
ENDIF
endwhile
CLEANUP
NOMSG calc vefclose(fnum)
NOMSG DELETEVAR REC_NBR OK_PROCESS FNUM R1 STMT
NOMSG DELETEVAR KEY_LABEL KEY_DEF
ENDCLEANUP
Here is an example of a data file this script reads
#GENERAL
RRHLOGON XEQ RRHLOGON.PUB.HORNER
MPEX XEQ MPEX.PUB.HORNER
QUAD XEQ QT.PUB.HORNER
QUERY RUN QUERYNM.PUB.SYS
LISTJOB XEQ MPEX.PUB.HORNER LISTJOB
ME XEQ ME.PUB.HORNER
TIME XEQ TIME.PUB.HORNER
FUNCTIONKEYS XEQ FUNCKEYS.PUB.HORNER
#QUAD
PAGE PAGE
LIST ALLOFFLINE L A O
LIST ALL L A
KEEP K
RENUM RENUM
EXIT E