49 lines
2.2 KiB
Plaintext
49 lines
2.2 KiB
Plaintext
10 FOR I = 0 TO 255:C = PEEK (512 + I):EOL = C = 0 OR C = 141: IF NOT EOL THEN C$ = C$ + CHR$ (C): NEXT I: STOP
|
|
20 DOS = (C = 141) * 128:AC = 0: FOR C = I - 1 TO 0 STEP - 1: IF PEEK (512 + C) = ASC (",") + DOS THEN AC = AC + 1: NEXT C
|
|
30 D$ = CHR$ (4):M$ = CHR$ (13): READ P$,C$(1),C$(2),C$(3),C$(4):F$ = P$ + ".TXT": ON AC GOTO 100,40,40,40: GOTO 500USAGE
|
|
40 C = 0: PRINT D$"OPEN "F$: PRINT D$"READ "F$
|
|
50 ONERR GOTO 80
|
|
60 INPUT "";NA$,GE$,DA$
|
|
70 C = C + 1: GOTO 60
|
|
80 POKE 216,0: IF PEEK (222) = 5 THEN PRINT D$"CLOSE "F$: ON AC GOTO 100,200,300,400
|
|
90 RESUME
|
|
|
|
REM ADD
|
|
100 PRINT M$C$(AC)M$
|
|
110 INPUT " NAME: ";NAME$
|
|
120 INPUT " GENRE: ";GENRE$
|
|
130 INPUT "DATE YYYY-MM-DD: ";DA$
|
|
140 PRINT D$"OPEN "F$: PRINT D$"APPEND "F$: PRINT D$"WRITE "F$: PRINT NAME$","GENRE$","DA$: PRINT D$"CLOSE "F$
|
|
150 GOTO 600"DONE
|
|
|
|
REM LATEST
|
|
200 PRINT M$C$(AC)M$M$" NAME: "NA$M$"GENRE: "GE$M$" DATE: "DA$;
|
|
210 GOTO 600"DONE
|
|
|
|
REM LATEST OF EACH GENRE
|
|
300 DIM NA$(C),GE$(C),DA$(C):GC = 0: PRINT D$"OPEN "F$: PRINT D$"READ "F$: FOR I = 1 TO C: GOSUB 350:NA$(J) = NA$:GE$(J) = GE$:DA$(J) = DA$: NEXT I: PRINT D$"CLOSE "F$
|
|
310 PRINT M$C$(AC)M$: FOR I = 1 TO GC: PRINT M$NA$(I)","GE$(I)","DA$(I);: NEXT I
|
|
320 GOTO 600"DONE
|
|
350 INPUT "";NA$,GE$,DA$: FOR J = 1 TO GC: IF GE$ = GE$(J) THEN RETURN
|
|
360 NEXT J:GC = GC + 1:J = GC: RETURN
|
|
|
|
REM ALL SORTED BY DATE
|
|
400 DIM NA$(C),GE$(C),DA$(C),DA(C):DC = 0: PRINT D$"OPEN "F$: PRINT D$"READ "F$: FOR I = 1 TO C: GOSUB 450:NA$(DC) = NA$:GE$(DC) = GE$:DA$(DC) = DA$:DA(DC) = DA(DP):DA(DP) = DC: NEXT I: PRINT D$"CLOSE "F$
|
|
410 PRINT M$C$(AC)M$:DA = DA(0): FOR I = 1 TO DC: PRINT M$NA$(DA)","GE$(DA)","DA$(DA);:DA = DA(DA): NEXT I
|
|
420 GOTO 600"DONE
|
|
450 DP = 0: INPUT "";NA$,GE$,DA$: IF NOT DC THEN DC = 1: RETURN
|
|
460 FOR J = 1 TO DC:DA = DA(DP): IF DA$ > DA$(DA) THEN DP = DA:DA = DA(DA): NEXT J:DA = DP
|
|
470 DC = DC + 1: RETURN
|
|
|
|
REM USAGE
|
|
500 DATA "SIMPLE DATABASE"
|
|
510 DATA " RUN: , ADD A NEW ENTRY"
|
|
520 DATA " RUN: ,, PRINT THE LATEST ENTRY"
|
|
530 DATA " RUN: ,,, LATEST OF EACH GENRE"
|
|
540 DATA " RUN: ,,,, ALL SORTED BY DATE"
|
|
550 IF NOT DOS THEN C$ = "RUN " + P$
|
|
560 PRINT "USAGE:"M$" "C$" ,..."M$" OR";: FOR I = 1 TO 4: PRINT M$C$(I);: NEXT I
|
|
|
|
REM DONE
|
|
600 END
|