10 'Program to Process CIS Forum SCAn Log Files 20 DIM D$(1000):F2$="TEMP.FLT":F3$="TEMP.SRT":M=0:B=1:E=70 30 CLS:C$=":":T=20:PG=1 : PRINT " CIS Forum SCAn Log Processor " 50 PRINT:FILES:PRINT 60 LINE INPUT " Name of input file? ";F$: IF F$="" THEN SYSTEM 70 LINE INPUT " Name of output file? ";G$: IF G$="" THEN SYSTEM 80 LINE INPUT " For User ID Number: ";I$ 90 IF I$="" THEN LINE INPUT " Title? ";T$ 100 PRINT:PRINT " Filtering....";:OPEN F$ FOR INPUT AS 1: OPEN F2$ FOR OUTPUT AS 2 110 IF EOF(1) THEN CLOSE:GOTO 150 120 LINE INPUT #1,H$ 130 IF LEN(H$) < 38 THEN GOTO 110 140 PRINT #2, H$: GOTO 110 150 BEEP:PRINT "Done. Sorting......";:OPEN F2$ FOR INPUT AS 1:N=0 160 N=N+1 170 LINE INPUT #1,Z$:IF EOF(1) THEN CLOSE:GOTO 190 180 GOTO 160 190 OPEN F2$ FOR INPUT AS 1:FOR I=1 TO N:LINE INPUT #1,D$(I):NEXT 200 CLOSE:GOSUB 240 210 KILL F2$:OPEN F3$ FOR OUTPUT AS 1 220 FOR I=1 TO N:PRINT #1,D$(I):NEXT I 230 CLOSE:GOTO 370 240 Z5=N 250 Z5=INT(Z5/2):IF Z5=0 THEN 360 260 Z2=1:Z3=N-Z5 270 Z1=Z2 280 Z4=Z1+Z5 290 IF (MID$(D$(Z1),B,(E-B)+1))<(MID$(D$(Z4),B,(E-B)+1)) THEN 330 ELSE 300 300 Z6$=D$(Z1):D$(Z1)=D$(Z4):D$(Z4)=Z6$ 310 Z1=Z1-Z5:IF Z1<1 THEN 330 320 GOTO 280 330 Z2=Z2+1 340 IF Z2>Z3 THEN 250 350 GOTO 270 360 RETURN 370 BEEP:PRINT "Done. Printing.....";:OPEN F3$ FOR INPUT AS 1 :OPEN G$ FOR OUTPUT AS 2 380 PRINT #2,TAB(T)"COMPUSERVE COMPUTER FORUM" 390 PRINT #2,TAB(T)"ACTIVE DATA LIBRARY FILES":IF I$="" THEN 420 400 L=LEN(I$):IF L/2=L\2 THEN I=20 ELSE I=21 410 PRINT #2,TAB(T)"FOR USER ID # "I$:PRINT #2,:PRINT #2,:GOTO 440 420 I=44-LEN(T$) 430 PRINT #2,TAB(T)T$:PRINT #2,:PRINT #2, 440 L=8 450 PRINT #2,TAB(T-12);DATE$;TAB(T+1);"Filename";TAB(20+T);"Date";TAB(34+T);"Size Accesses";TAB(72);"Page"PG 460 PRINT #2,TAB(T);STRING$(48,"=") 470 PRINT #2, :PG=PG+1 480 IF EOF(1) THEN 620 490 IF L=>58 THEN PRINT #2,CHR$(12):GOSUB 600 500 LINE INPUT #1,A$:IF A$="" THEN PRINT #2,:L=L+1:GOTO 480 510 IF LEN(A$)>60 THEN A$=LEFT$(A$,60) 520 IF LEN(A$)<55 THEN A$=A$+" 0" 530 A$=LEFT$(A$,18)+MID$(A$,26):IF INSTR(A$,"(") THEN P1=INSTR(A$,"("):P2=INSTR(A$,")") ELSE 550 540 A$=LEFT$(A$,P1-1)+MID$(A$,P2+1) 550 B$=RIGHT$(A$,5):N=VAL(B$):A$=LEFT$(A$,35) 560 B$=MID$(A$,29):X=VAL(B$):A$=LEFT$(A$,29):IF N=X THEN N=0 570 TX=TX+X:TN=TN+N 580 IF LEFT$(A$,1)>C$ THEN C$=LEFT$(A$,1):PRINT #2,:L=L+1 590 PRINT #2,TAB(T);A$;TAB(52);:PRINT #2,USING "###### #####";X;N:L=L+1:TF=TF+1:GOTO 480 600 PRINT #2,TAB(T-12);DATE$;TAB(T+1);"Filename";TAB(20+T);"Date";TAB(34+T);"Size Accesses";TAB(72);"Page"PG 610 PG=PG+1:PRINT #2,TAB(T);STRING$(48,"="):PRINT #2,:L=4:RETURN 620 BEEP:PRINT "Done.":PRINT #2,:PRINT #2, 630 PRINT #2,TAB(T)"Total Number of Files: ";:PRINT #2,USING "######,###";TF 640 PRINT #2,TAB(T)"Total Number of Bytes: ";:PRINT #2,USING "######,###";TX 650 PRINT #2,TAB(T)"Total Number of Accesses: ";:PRINT #2,USING "######,###";TN 660 PRINT 670 PRINT " Total Number of Files: ";:PRINT USING "######,###";TF 680 PRINT " Total Number of Bytes: ";:PRINT USING "######,###";TX 690 PRINT " Total Number of Accesses: ";:PRINT USING "######,###";TN 700 FOR A=1 TO LEN(F$):B=ASC(MID$(F$,A,1)) 710 IF B>95 THEN MID$(F$,A,1)=CHR$(B-32) 720 NEXT :PRINT #2, 730 CLOSE:KILL F3$:SYSTEM