FINDINITBAS lvFINDWORDBAS0rFINDWORDDQCGvsFINDWORD.DOC@  !"#$%&'()*+,-./0123456789:;<o=>?7t{xCW<|z|Ķ{7&[C.ZW.K"4!h;<$N{+ .B"@M-;b3L8mGpL =I|9s#bqހ3uSBgry`QC?ؔH,,ur^N'> R(M,bTc;2$3LGD#RN1,Wji 78=nixEsx]]-,#MGM[XIWxHcgk3Ą'DϾ=8Am!8=n=)(Oje5a)mL0JJ8LebQn #Fu1`bs-i΄l6lt(!1cTA5jeݔcThb¢ dL/ahb>%|D"frŀ3b&6cآ!39BԂ/_oZjetvg2nQ] gB>,SF,HarĢ،Q] HB~>|A"" THEN KILL word.file$ 170 IF FIND$(word.index$)<>"" THEN KILL word.index$ 180 CREATE 1,word.file$,word.index$,2,2 190 rc=RANKSPEC(1,0,1) 200 FOR a=ASC("?") TO ASC("Z") 210 IF a=64 THEN a=65 220 rc=ADDREC(1,2,0,CHR$(a)):IF rc<>0 THEN PRINT "ERROR":STOP 230 PRINT CHR$(a) " "; 240 NEXT a 250 rc=ADDREC(1,2,0,"[EOF]"):IF rc<>0 THEN PRINT "ERROR":STOP 260 PRINT "[EOF]":PRINT"Please wait..." 270 CLOSE 1 280 RUN "findword" REC(1,2,0,"[EOF]"):IF rc<>0 THEN PRINT "ERROR":STOP 260 PRINT "[EOF]":PRINT"Ple100 ON ERROR GOTO 950 110 OPTION RUN 120 BUFFERS 20 130 word.file$="words.dat" 140 word.index$="words.idx" 150 OPEN "K",1,word.file$,word.index$,2 160 cls$=CHR$(27)+"E"+CHR$(27)+"H" 170 bel$=CHR$(7) 180 PRINT cls$ "FINDWORD v1.0 (August 1988) (C) 1988 C.Murfin" 190 prog.in.use=-1 200 WHILE prog.in.use 210 PRINT 220 PRINT " 1 - Add Word" 230 PRINT " 2 - Delete Word" 240 PRINT " 3 - Find Word(s)" 250 PRINT " 4 - Exit" 260 PRINT 270 PRINT "Enter Choice (1-4) : "; 280 x$="" 290 WHILE x$<"1" OR x$>"4" 300 x$=INPUT$(1) 310 WEND 320 PRINT x$ 330 PRINT 340 IF x$="4" THEN prog.in.use=0 ELSE ON VAL(x$) GOSUB 390,470,560 350 WEND 360 CLOSE 1 370 END 380 ' Add word to word-file 390 LINE INPUT "[Add] Enter word (RETURN quits) : ",word$ 400 IF word$="" THEN RETURN 410 word$=UPPER$(word$) 420 IF ASC(word$)<65 OR ASC(word$)>90 OR LEN(word$)=1 THEN PRINT:PRINT bel$ "** Invalid, must be more than 1 alpha letter":PRINT:GOTO 450 430 rc=ADDREC(1,2,0,word$) 440 IF rc=116 THEN PRINT:PRINT bel$ "Word already exists":PRINT ELSE GOSUB 900 450 GOTO 390 460 ' Delete word from word-file 470 LINE INPUT "[Delete] Enter word (RETURN quits) : ",word$ 480 IF word$="" THEN RETURN 490 word$=UPPER$(word$) 500 IF ASC(word$)<65 OR ASC(word$)>90 OR LEN(word$)=1 THEN PRINT:PRINT bel$ "** Invalid, must be more than 1 alpha letter":PRINT:GOTO 540 510 rc=SEEKKEY(1,2,0,word$) 520 IF rc>=103 THEN PRINT:PRINT bel$ "Word not on file, can't delete":PRINT:GOTO 540 ELSE GOSUB 900 530 rc=DELKEY(1,2):IF rc>105 THEN GOSUB 900 540 GOTO 470 550 ' Find word(s) from given mask 560 LINE INPUT "[Find] Enter mask (RETURN quits) : ",mask$ 570 IF mask$="" OR INSTR(mask$,"?")=0 THEN RETURN 580 PRINT 590 PRINT "[STOP] to terminate search":PRINT 600 no.word.found=-1 610 mask$=UPPER$(mask$) 620 lnm=LEN(mask$) 630 fl$=LEFT$(mask$,1) 640 end.of.file=0 650 rc=SEEKKEY(1,2,0,fl$) 660 IF rc>0 THEN ERROR(51) 670 GOSUB 770:IF end.of.file THEN 730 680 IF INKEY$=CHR$(3) THEN PRINT:PRINT:PRINT bel$ "** Find aborted":RETURN 690 IF fl$<>"?" AND LEFT$(word.found$,1)<>fl$ THEN 730 700 IF lnm <> LEN(word.found$) THEN 670 710 GOSUB 830 720 GOTO 670 730 PRINT 740 IF no.word.found THEN PRINT bel$ "** No match found" 750 RETURN 760 ' find next word in file, flag at [EOF] 770 rc=SEEKNEXT(1,2) 780 IF rc>103 THEN ERROR(51) 790 word.found$=FETCHKEY$(1) 800 IF word.found$="[EOF]" THEN end.of.file=-1 810 RETURN 820 ' compare mask with word 830 word.match%=-1 840 FOR srch%=1 TO lnm 850 IF MID$(mask$,srch%,1)<>"?" THEN IF MID$(mask$,srch%,1)<>MID$(word.found$,srch%,1) THEN srch%=99:word.match%=0 860 NEXT srch% 870 IF word.match% THEN PRINT word.found$,:no.word.found=0 880 RETURN 890 ' Check rc for indexed files 900 IF rc<=0 THEN RETURN 910 CLOSE 1 920 PRINT "Error in JETSAM :"rc 930 END 940 ' close file cleanly if error occurs 950 CLOSE 1 960 IF ERR=51 THEN PRINT bel$ "JETSAM ERROR :"rc 970 ON ERROR GOTO 40 ' close file cleanly if error occurs 950 CLOSE