10 ! DATECOR.BAS ! TO CORRECT ".LOG" FILES WITH 79 INSTEAD OF 80 DATES ! FROM DAMAGE CAUSED BY INCORRECT SYSTEM ! TIME SETTING OR OTHER ERRORS 12 DIM A$[56],N$[20]V,B$[56],C$[12] 210 INPUT "USER ";N$ 220 OPEN #3,N$+".LOG/MO/RN/SH/LN:56" 230 N=NRC(3) 240 PRINT "TOTAL RECORDS =";N 245 DF=0 250 FOR I=1 TO N 295 INPUT LINE #3@I,A$ 297 IF DF=1 GOTO 350 : ! IF 1980 SEEN, CHECK FOR 1979 300 IF SBS$(A$,7,2)="80" THEN DF=1 : ! CHECK FOR FIRST 1980 DATE 305 IF SBS$(A$,26,2)="80" THEN DF=1 310 IF DF<>1 GOTO 450 : ! DATE IS OK 350 IF SBS$(A$,7,2)="79" GOTO 400 360 IF SBS$(A$,26,2)="79" GOTO 400 370 GOTO 450 : ! RECORD IS OK 400 ! CALC CORRECT DATES 401 ! 12/XX/79 LOGIN AND 01/XX/80 LOGOUT IS OK 402 IF SBS$(A$,7,2)="79" AND SBS$(A$,26,2)="80" AND SBS$(A$,1,2)="12" GOTO 450 405 DA=DCEN(SBS$(A$,20,6)+"80")-DCEN(SBS$(A$,1,6)+"80") 407 HR=VAL(SBS$(A$,29,2))-VAL(SBS$(A$,10,2)) 409 MI=VAL(SBS$(A$,32,2))-VAL(SBS$(A$,13,2)) 411 SE=VAL(SBS$(A$,35,2))-VAL(SBS$(A$,16,2)) 413 IF SE<0 THEN SE=SE+60 : MI=MI-1 415 IF MI<0 THEN MI=MI+60 : HR=HR-1 417 IF HR<0 THEN HR=HR+24 : DA=DA-1 418 IF DA<0 THEN DA=DA+31 420 C$=FRMT$(DA,3)+":"+FRMT$(HR,2)+":"+FRMT$(MI,2)+":"+FRMT$(SE,2) 425 FOR J=1 TO 3 430 IF SBS$(C$,J*3+2,1)=" " THEN C$=SEG$(C$,1,J*3+1)+"0"+SEG$(C$,J*3+3,12) 435 NEXT J 440 B$=SEG$(A$,1,6)+"80"+SEG$(A$,9,25)+"80"+SEG$(A$,28,38)+C$+SEG$(A$,51,56) 442 PRINT #3@I,B$ : ! PRINT CORRECTED RECORD 443 PRINT 444 PRINT "CORRECTED ";A$ 446 PRINT "TO READ ";B$ 450 NEXT I 500 CLOSE 3 : EXIT