1 !PROGRAM NAME MODIFY 100 OPEN "KB:" AS FILE 2%:L=10 200 DIM N(20) 300 P$="MODIFY":GOTO 1900 400 ON ERROR GOTO 1800 500 &"*";:INPUT LINE #2,C$: C$=LEFT(C$,LEN(C$)-2%): G%=INSTR(1%,C$,"'<'"):O5%=INSTR(G%,C$,"'/"): IF G%=0% THEN IF C$="/HE" THEN 2500 ELSE IF C$="/CH" THEN 2400 600 IF G%=0% THEN IF C$="/EX" THEN 3500 ELSE IF INSTR(1%,C$,"/FI")=0 THEN 2300 ELSE P$=LEFT(C$,INSTR(1%,C$,"/FI")-1%):GOTO 500 610 IF O5%=0% THEN &"PLEASE SPECIFY OPTION":GOTO 2300 700 S$=MID(C$,2%,G%-2%):R$=MID(C$,G%+3%,O5%-G%-3%):L$=RIGHT(C$,O5%+2%) 800 S%=LEN(S$):D%=S%-LEN(R$):L4%=INSTR(1%,L$,"/LI"):IF L4% THEN L$=LEFT( L$,L4%-1%) 900 IF P$="" THEN &"FILE FOR MODIFICATION NOT OPEN":GOTO 500 950 T$=LEFT(P$,INSTR(1%,P$,":"))+"MODIFY.TMP" 1000 OPEN P$ FOR INPUT AS FILE 1%: OPEN T$ FOR OUTPUT AS FILE 3% 1100 INPUT LINE #1,I$: IF L$="AL" THEN 1300 ELSE IF L=10 THEN N2$=LEFT(I$,INSTR(1%,I$," ")-1%) 1110 L4$=L$ 1120 D4%=INSTR(1%,L4$,",") 1130 IF D4% THEN L3$=LEFT(L4$,D4%-1%):L4$=RIGHT(L4$,D4%+1%):GOTO 1150 1140 L3$=L4$ 1150 IF N2$=L3$ THEN 1300 1160 D5%=INSTR(1%,L3$,"-") 1170 IF D5% THEN IF VAL(N2$)>=VAL(LEFT(L3$,D5%-1%)) AND VAL(N2$)<=VAL(RIGHT(L3$,D5%+1%)) THEN 1300 1200 IF D4% THEN 1120 ELSE 1700 1300 FOR X=1 TO 20: N(X)=INSTR(N(X-1)+1%,I$,S$): IF N(X)=0 THEN 1500 1400 NEXT X 1500 FOR X=1 TO 20: IF N(X)=0 THEN 1600 ELSE I$=LEFT(I$,N(X)-((X-1)*D%)-1%)+R$ +RIGHT(I$,(N(X)-((X-1)*D%))+S%): NEXT X 1600 IF L4% AND N(1)<>0 THEN &I$; 1700 ,I$;: N(X)=0 FOR X=1 TO 20: L=ASCII(RIGHT(I$,LEN(I$))): GOTO 1100 1800 IF ERR=11 THEN RESUME 2100 ELSE E%=ERR:RESUME 1900 1900 IF E%<0% THEN 400 ELSE E$=SYS(CHR$(6%)+CHR$(9%)+CHR$(E%)): E$=MID(E$,3%,INSTR(3%,E$,CHR$(0%))-3%) 2000 S$=SYS(CHR$(0%)):&P$" - "E$:IF E%=0% THEN P$="" 2050 GOTO 400 2100 CLOSE 1,3: KILL P$: NAME T$ AS P$ 2200 GOTO 500 2300 &"SYNTAX ERROR-"C$:&"TYPE '/HE' FOR HELP":GOTO 500 2400 CHAIN P$ 32767% 2500 P$="$MODIFY.TXT":OPEN P$ FOR INPUT AS FILE 9% 2600 ON ERROR GOTO 2800 2700 INPUT LINE #9,I$:&I$;:GOTO 2700 2800 CLOSE 9%:RESUME 400 3500 CLOSE 3 3600 END