10 ! PROGRAM LOGCLEAN.BAS 11 ! TO LOOK AT LOOGED ON USERS 12 ! AND CLEAN UP IF CLOBBERED BY SYSTEM CRASH 20 DEF FNT1$(X)=STRING$("0",2-LEN(STR$(X)))+STR$(X) 30 DIM MO$[36],A$[80]V,U$[12]V,L$[56],V$[32]V,T$[32]V 40 MO$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" 50 DIM #3,D%(255),R%(31,9) 60 DIM #4,UP%(143,31) 70 OPEN #3,"LB:[1,1]HELBYE.TSK/BL/MO/SH" 80 OPEN #4,"SD:[1,100]PDSUPF.DAT/BL/RO/SH" 100 FOR N=1 TO 30 110 IF R%(N,0)=0 THEN 130 ELSE GOSUB 900 130 NEXT N 140 EXIT 900 T$=OCT$(N) : IF LEN(T$)<2 THEN T$="0"+T$ 920 PRINT "TT";T$;" "; 1000 PRINT "USER: "; 1010 V$="" : FOR J=0 TO 3 1020 U$=R5A$(UP%(R%(N,8)-1,J)) 1030 V$=V$+U$ : PRINT U$; 1040 NEXT J : V$=TRM$(V$) 1050 PRINT "LOGGED ON AT "; 1060 A$=STR$(R%(N,2))+"-"+SBS$(MO$,(R%(N,1)-1)*3+1,3)+"-"+STR$(R%(N,0)) 1070 PRINT A$+" "; 1080 FOR J=3 TO 5 : PRINT FNT1$(R%(N,J)); : IF J<>5 THEN PRINT ":"; : NEXT J 1090 INPUT " ACTION ",X$ : IF POS("CONTINUE",X$)=1 THEN 1290 1100 IF POS("KILL",X$)=1 THEN R%(N,0)=0 : GOTO 1290 1110 IF POS("LOGOFF",PIECE$(X$,",",1))=1 THEN L$=SPACE$(56): IF PIECE$(X$,",",2)<>"" THEN T$=PIECE$(X$,",",2): D1$=PIECE$(T$," ",1): T1$=PIECE$(T$," ",2): D1=DCEN(D1$): T1=SEC(T1$): CALL "INSTRG"(L$,DAT$(D1),20): CALL "INSTRG"(L$,TIM$(T1),29) ELSE D1$=DAT$() : T1$=TIM$(): CALL "INSTRG"(L$,D1$,20): CALL "INSTRG"(L$,T1$,29) ELSE 1090 1120 D2$=FNT1$(R%(N,1))+"/"+FNT1$(R%(N,2))+"/"+FNT1$(R%(N,0)): T2$=FNT1$(R%(N,3))+":"+FNT1$(R%(N,4))+":"+FNT1$(R%(N,5)) 1130 CALL "INSTRG"(L$,D2$,1): CALL "INSTRG"(L$,T2$,10) 1140 ! NOW CALCULATE DIFFERENCE GOSUB 2180 1180 CALL "INSTRG"(L$,T$,39) 1190 T$=OCT$(N): IF LEN(T$) < 2 THEN T$="0"+T$ 1200 CALL "INSTRG"(L$,"TT"+T$,52) 1210 OPEN #5,V$+".LOG/AP/FX/LN:56" 1220 PRINT #5,L$ : CLOSE 5 1230 R%(N,0)=0 1290 RETURN 2180 ! CALC CORRECT TIME 2200 DA=DCEN(SBS$(L$,20,8))-DCEN(SBS$(L$,1,8)) 2220 HR=VAL(SBS$(L$,29,2))-VAL(SBS$(L$,10,2)) 2240 MI=VAL(SBS$(L$,32,2))-VAL(SBS$(L$,13,2)) 2260 SE=VAL(SBS$(L$,35,2))-VAL(SBS$(L$,16,2)) 2280 IF SE<0 THEN SE=SE+60 : MI=MI-1 2300 IF MI<0 THEN MI=MI+60 : HR=HR-1 2320 IF HR<0 THEN HR=HR+24 : DA=DA-1 2340 IF DA<0 THEN DA=31 :! NOT IMPORTANT IF THIS LONG 2360 T$=FRMT$(DA,3)+":"+FRMT$(HR,2)+":"+FRMT$(MI,2)+":"+FRMT$(SE,2) 2380 FOR J=1 TO 3 2400 IF SBS$(T$,J*3+2,1)=" " THEN T$=SEG$(T$,1,J*3+1)+"0"+SEG$(T$,J*3+3,12) 2420 NEXT J 2440 RETURN