2 ! SORTS 'EXP' AND MERGES IT INTO THE YEARLY 'GLR' FILE! 5 ! PROGRAM NAME: "STMGEP" - BY JAC. 10 INPUT "DISK #";D9$:D9$="DK"+D9$+":GLFILE.":V%=0%:W%=1%:X%=2%:Y%=3%:Z%=4%: ON ERROR GOTO 2000 15 OPEN D9$+"EXP" AS FILE W%:DIM #1%,U$(4000%)=64%:N%=CVT$%(U$(0%)): OPEN D9$+"ARG" AS FILE X%:DIM #2%,J(4000%):OPEN D9$+"IDX" AS FILE Y%: DIM #3%,I%(4000%) 20 I%(K%)=V% FOR K%=W% TO N%:J(K%)=VAL(MID(U$(K%),Z%,X%)+MID(U$(K%),11%,6%)+ LEFT(U$(K%),Y%)+MID(U$(K%),7%,Z%)+MID(U$(K%),6%,W%)) FOR K%=W% TO N% 30 GOSUB 1000:CLOSE X%,Y%:KILL D9$+"ARG":KILL D9$+"IDX":OPEN D9$+"GLR" AS FILE X%:GET #X%:FIELD #X%,16% AS R$:R%=CVT$%(LEFT(R$,X%)): LSET R$="":U$(V%)=SPACE$(16%):M%=N%+R%:J%=N%:I%=R%:B%=W%:Z1%,B2%=-W%: PRINT "BEGAN MERGE AT ";TIME$(V%) 40 FOR K%=M% TO W% STEP -W%:GOSUB 200:D$=C$+"":GOSUB 400:GOSUB 300: IF J%=V% OR R$>U$ THEN LSET L$=D$:I%=I%-W%:GOTO 60 50 LSET L$=U1$:J%=J%-W% 60 Z1%=-W%:NEXT K%:FIELD #X%,X% AS R$:LSET R$=CVT%$(M%):PUT #X%,RECORD B%: GET #W%,RECORD W%:FIELD #W%,X% AS U$:LSET U$=CVT%$(N%):PUT #W%,RECORD W% :CLOSE W%,X%:PRINT "MERGE COMPLETE AT ";TIME$(V%):STOP 200 B1%=I%/8%+W%:IF B1%<>B% THEN PUT #X%,RECORD B% IF Z1%:GET #X%,RECORD B1%: B%=B1%:Z1%=V% 210 O%=(I%-(B%-W%)*8%)*64%:FIELD #X%,O% AS E$,Y% AS L1$,X% AS F$,W% AS Y$, Z% AS P$,6% AS B$:R$=F$+B$+L1$+P$+Y$:FIELD #X%,O% AS E$,64% AS C$: RETURN 300 B1%=K%/8%+W%:IF B%<>B1% THEN GET #X%,RECORD B1%:B%=B1% 310 O%=(K%-(B%-W%)*8%)*64%:FIELD #X%,O% AS E$,64% AS L$:RETURN 400 B3%=J%/8%+W%:IF B3%<>B2% THEN GET #W%,RECORD B3%:B2%=B3% 410 O2%=(J%-(B2%-W%)*8%)*64%:FIELD #W%,O2% AS E$,Y% AS L1$,X% AS F$,W% AS Y$, Z% AS P$,6% AS B$:U$=F$+B$+L1$+P$+Y$:FIELD #W%,O2% AS E$,64% AS U1$: RETURN 1000 M=J(W%):FOR K%=X% TO N%:IF J(K%)>M THEN M=J(K%):GOTO 1030 1010 T=J(K%):S%=V%:FOR J%=K%-W% TO W% STEP -W%:IF J(J%)>T THEN S%=S%-W%: I%(J%)=I%(J%)+W% 1020 NEXT J%:I%(K%)=I%(K%)+S% 1030 NEXT K%:FOR K%=W% TO N%:IF I%(K%)=V% THEN 1050 ELSE J%=K%:T$=U$(K%) 1040 T1$=U$(J%+I%(J%)):U$(J%+I%(J%))=T$:L%=J%:J%=L%+I%(L%):I%(L%)=V%:T$=T1$: GOTO 1040 IF J%<>K% 1050 NEXT K%:RETURN 2000 IF ERR<>11% THEN ON ERROR GOTO 0 ELSE B%=B1%:RESUME 310 2010 END