**** * OPTECH.IN * * Item last updated: 16:14:11 18 FEB 1987 MIS.SNA.PROG.ATM DEVEL 2 * * Program for data entry into the OPTECH file. * **** PROMPT '' TRUE = 1 FALSE = 0 OTHERS = TRUE OPEN '','OPTECH' TO OPTECH.FILE ELSE STOP 'NO OPTECH' OPEN 'DICT','OPTECH' TO DICT.OPTECH.FILE ELSE STOP 'NO DICT OPTECH' READV NEXT.ID FROM DICT.OPTECH.FILE, 'NEXT.ID',2 ELSE STOP 'NO NEXT.ID IN DICT OPTECH' LOWER.CASE = 'abcdefghijklmnopqrstuvwxyz' UPPER.CASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' BS = '' BS := @(-1) BS := 'OPTECH.IN' BS := @(0,2):'Brief: ' CS = '' CEOL = @(-4) CS := @(10,0):CEOL CS := @(7,2):CEOL DETAIL.CS = '' FOR I = 4 TO 22 DETAIL.CS := @(8,I):CEOL BS := @(0,I):'Detail:' NEXT I CS := DETAIL.CS PRINT BS: LOOP PRINT @(10,0):NEXT.ID: GOSUB INPUT.BRIEF UNTIL SIGNAL.STOP GOSUB INPUT.DETAIL GOSUB WRITE.DATA PRINT CS: REPEAT PRINT @(0,23) STOP 'Outa-here.' INPUT.BRIEF: PRINT @(7,2): INPUT BRIEF.DATA TEST = BRIEF.DATA CONVERT LOWER.CASE TO UPPER.CASE IN TEST SIGNAL.STOP = TEST EQ '/END' RETURN INPUT.DETAIL: INDEX = 1 START = 4 DETAIL.DATA = '' LOOP FOR I = START TO 22 PRINT @(8,I): INPUT LINE TEST = LINE CONVERT LOWER.CASE TO UPPER.CASE IN TEST UNTIL TEST EQ '/END' DETAIL.DATA = LINE INDEX += 1 NEXT I UNTIL TEST EQ '/END' PRINT DETAIL.CS: FOR I = 1 TO 3 PORTION = INDEX - 4 + I AT = 4 + I - 1 PRINT @(8,AT):DETAIL.DATA: NEXT I START = 7 REPEAT RETURN WRITE.DATA: PRINT @(10,1):'Okay to write: ':CEOL: INPUT RESPONSE IF RESPONSE EQ 'NO' THEN PRINT @(10,1):'Entering ':NEXT.ID:' over again.':CEOL: RETURN END RECORD = BRIEF.DATA:@VM ;* The @VM is for the report to cause an extra blank line. CONVERT @FM TO @VM IN DETAIL.DATA RECORD<-1> = DETAIL.DATA WRITE RECORD TO OPTECH.FILE, NEXT.ID NEXT.ID += 1 PRINT @(10,1):CEOL: WRITEV NEXT.ID TO DICT.OPTECH.FILE, 'NEXT.ID', 2 RETURN END