!DATLNK.BAS 05/21/92 By Software Maintenance, Inc.
!
!
!
MAP1 IN'FILE,S,10
MAP1 X,F,6,0
MAP1 LINE'IN,S,80
MAP1 REC'CNT,F,6,0
MAP1 TOTAL'BYTES,F,6,0
MAP1 LINE'TOP,S,80
MAP1 BLK'LINE'FLAG,F,6,0
!
!
!CUSTOM.LNK represents a fairly constant listing of name and phone
! numbers that I YANK into the end of my DART report.
!
!Before you can massage the DART report file you must remove all line feeds.
!
!
PRINT TAB(-1,0);
PRINT "Do not forget to append CUSTOM.LNK to DATLNK.*"
PRINT "Do not forget remove ^L form DATLNK.*"
INPUT LINE "Enter Input filename {DATLNK.*}: ";IN'FILE
IN'FILE=UCS(IN'FILE)
OPEN #2,IN'FILE,INPUT !DART OUTPUT FILE
OPEN #3,"LNKDFL.DAT",OUTPUT !LINK FILE
OPEN #4,"ADDAUD.LST",OUTPUT !AUDIT FILE
!
LINE'IN=SPACE(100)
PRINT #3;"#400 Inventa" !HEADER
!
GET'NEXT'LINE:
PRINT ".";
INPUT LINE #2,LINE'IN
IF EOF(2) THEN GOTO END'PROG
LINE'IN=UCS(LINE'IN)
!Begin check for blank lines.
!The "-" was chosen because of the layout of my DART report. There always
!will be a key and a name. The number of phone numbers would vary and this
!searches for the "-" in (215)-843-2900.
!
X=INSTR(2,LINE'IN,"-")
!Blank line delimiting records from LNKDFL.LST
IF (LINE'IN[X;1]<>"-" AND LINE'IN[X+1;1]=" ") THEN GOTO BLANK'LINE
!Empty data line
IF (LINE'IN[X+2;1]=" " AND LINE'IN[X;1]="-") GOTO GET'NEXT'LINE
!Write line to DAT file
PRINT #3 UCS(LINE'IN);CHR$(13);
!Write to Audit trail file
PRINT #4 LINE'IN
!Back Again
GOTO GET'NEXT'LINE
END'PROG:
CLOSE #2
CLOSE #3
CLOSE #4
PRINT
PRINT "TOTAL RECORDS ";REC'CNT;"TOTAL CHARACTERS ";TOTAL'BYTES
PRINT "Datalink file: LNKDFL.DAT"
PRINT "Audit file: ADDAUD.LST"
END
!
!
!If there is a blank line an End of Record flag needs to be written
BLANK'LINE:
REC'CNT=REC'CNT+1
PRINT #4
PRINT #3 CHR$(00);CHR$(00);CHR$(00);CHR$(255);
GOTO GET'NEXT'LINE