5 REM ... EGILS PROGRAMMERI
6 REM ... LIST KASXINX
10 REM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
11 REM < KEYWORD ACESS SYSTEM <
12 REM < 'INDEX' SUBSYSTEM <
13 REM < ----------- <
14 REM < K$=KEYWORDS,A$=ARTICLE <
15 REM < NAME,M$=MAGAZINE,D$=DATE, <
16 REM < P%=PAGE,W$()=AUTHORS,Z$= <
17 REM < DATA FILE, N%=ITEMS <
18 REM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
19 ; CHR$(12%); : ; "========= LISTNING AV ARTIKLAR ========="
20 ; CUR(1%,2%)"PROGRAMMET LISTAR ALLA INDEXORD" : ; CUR(2%,2%)"I FILEN, I DEN ORDNING DE [R INL[STA"
21 J%=F% : DIM K$(10%)=20%,W$(2%)=25%,I$(800%)=20%
22 REM *MENU
23 FOR I%=1% TO 21% : ; CUR(I%,0%);"=" : ; CUR(I%,39%);"=" : NEXT I%
24 FOR J%=0% TO 39% : ; CUR(3%,J%)"=" : ; CUR(21%,J%);"=" : NEXT J%
25 ; CUR(5%,2%);"AKTUELL" : ; CUR(6%,3%)"FIL (EXT) >"
26 ; CUR(8%,2%)"PRINTER J/N >"
27 S%=1% : REM ; CUR(10%,2%)"F\RSTA POST-" : ; CUR(11%,3%)"NUMMER >"
28 E%=200% : REM ...|vre gr{ns antal artiklar
29 REM *OPEN FILE AND PRINTER
30 ; CUR(6%,16%)""; : INPUTLINE Z$ : Z$=LEFT$(Z$,LEN(Z$)-2%) : ONERRORGOTO 65
31 OPEN "DR1:"+Z$ ASFILE 1% : ONERRORGOTO 0
32 ; CUR(8%,16%)""; : INPUTLINE P$ : P$=LEFT$(P$,1%) : IF P$="J" OR P$="j" P1%=2% : REM 2%
33 OPEN "PR:" ASFILE P1%
34 REM *HEAD OF LIST
35 IF P1% ; #P1%'LISTNING AV INDEX-ORD',
36 IF P1% ; #P1%'AKTUELL FIL :';Z$ : ; #P1%
41 J%=0% : REM *PRINT THE FILE
42 N%=N%+1%
43 ONERRORGOTO 66
44 FOR I%=1% TO 10% : INPUT #1,K$(I%) : NEXT I%
45 REM ... SKIPPA
46 FOR I%=1% TO 6% : INPUT #1,A$ : NEXT I%
50 IF N%E% GOTO 64
52 REM *PRINT ENTRY
57 FOR I%=1% TO 10%
58 IF K$(I%)="" GOTO 60
59 I$(J%)=K$(I%) : J%=J%+1%
60 NEXT I%
62 GOTO 42
63 REM *CLEAN UP
64 CLOSE 1% : IF P1% ; #P1% : ; #P1%'*KLAR' : ; CUR(16%,2%)"*KLAR" ELSE ; : ; "Det var det"
65 GOTO 67
66 IF ERRCODE=34 THEN 67 ELSE 64
67 REM ...SORT
68 J9%=J%-1% : ; CUR(11%,2%)'ANTAL INDEXORD'J9%
69 IF P1% ; #P1%'Det {r in alles'J9%' indexord ';
100 REM ...SORT
105 J1%=1%
110 F%=0%
120 FOR J%=1% TO J9%-1%
125 C$=I$(J%)
130 IF C$<=I$(J%+1%) 160
140 I$(J%)=I$(J%+1%) : I$(J%+1%)=C$
150 F%=F%+1%
160 NEXT J%
165 ; CUR(13%,2%)'OMG]NG'J1%' MED'F%' BYTEN' : J1%=J1%+1%
170 IF F%>0% 110
180 REM ...RENSA
190 K%=0%
200 FOR J%=1% TO J9%-1%
210 IF I$(J%)=I$(J%+1%) 250
220 K%=K%+1%
230 I$(K%)=I$(J%)
250 NEXT J%
252 K9%=K%+1% : I$(K9%)=I$(J9%)
260 IF P1% ; #P1%'och efter samsortering {r det'K%' olika indexord' : ; #P1%
270 FOR J%=1% TO K9% : ; #P1%I$(J%), : IF J%/5%=(4%+J%)/5% ; #P1%
280 NEXT J% : ; #P1% : ; #P1%
290 CHAIN "KASXMENU"