'===========================================================================
' Subject: EXAMPLE LIST SEARCHER              Date: 01-19-97 (17:00)       
'  Author: Nick Kochakian                     Code: QB, QBasic, PDS        
'  Origin: NickK@worldnet.att.net           Packet: MISC.ABC
'===========================================================================
DECLARE SUB BUILDLST ()

'----------------------------------------------------------------------------
'Program Name:  Example list searcher
'
'Date made:  1/19/97, 1997
'
'Author:  - Nick Kochakian -
'
'E-mail: nickK@worldnet.att.net
'
'Author's comments: This was very easy for me to make. Too easy infact.
'Fell free to use this program, and you don't have to include my name
'if you do use this code! :)
'----------------------------------------------------------------------------

CLS
PRINT "Building list... Please wait..."
CALL BUILDLST 'Build an example list
SLEEP 1
CLS
LIST$ = "LIST.TMP" 'List name
OPEN LIST$ FOR INPUT AS #1
LISTS:
'You can take this out if you make your own list:
PRINT "Words stored in list:"
PRINT "A"
PRINT "B"
PRINT "BYE"
PRINT "CD"
PRINT "EXAMPLE"
PRINT "MOUSE"
PRINT ""
SEARCHAGAIN:
KY$ = ""
INPUT "Type in a keyword or a word: ", KY$
PRINT ""
PRINT "Looking up word..."
PRINT ""
IF KY$ = "" THEN KY$ = "A"
KY$ = UCASE$(KY$)
LENOKY = LEN(KY$)
CNT = 0
DO
INPUT #1, INPT$
IF INPT$ = "!" THEN INPUT #1, DEFINI$
IF LEFT$(INPT$, LENOKY) = KY$ THEN PRINT INPT$: CNT = CNT + 1
LOOP UNTIL INPT$ = "[END]"

PRINT ""
PRINT CNT; "words that match: " + KY$ + " were found"
PRINT ""
CLOSE #1
OPEN LIST$ FOR INPUT AS #1
PRINT "See a definition for a word? (Y)es / (N)o >";
DO
A$ = INKEY$
IF UCASE$(A$) = "Y" THEN PRINT A$: GOTO LOOKDEFI:
LOOP UNTIL UCASE$(A$) = "Y" OR UCASE$(A$) = "N"
PRINT A$
PRINT ""
QUESTIONS:
PRINT "Press 1 to start over, press 2 to keep going, or press 3 to exit."
DO
A$ = INKEY$
LOOP UNTIL A$ = "1" OR A$ = "2" OR A$ = "3"
IF A$ = "1" THEN CLS : GOTO LISTS:
IF A$ = "2" THEN PRINT "": GOTO SEARCHAGAIN:
IF A$ = "3" THEN CLS : PRINT "See you later! :)": END
END

LOOKDEFI:
PRINT ""
KY$ = ""
INPUT "Type in a word or key word to see a definition for: ", KY$

KY$ = UCASE$(KY$)
LENOKY = LEN(KY$)
CNTOK = 1
DO
INPUT #1, INPT$
IF LEFT$(INPT$, LENOKY) = KY$ THEN PRINT INPT$; : CNTOK = 2
IF INPT$ = "!" AND CNTOK = 2 THEN INPUT #1, DEFINI$: PRINT DEFINI$: CNTOK = 1: INPT$ = "[END]"
LOOP UNTIL INPT$ = "[END]"

CLOSE #1
OPEN LIST$ FOR INPUT AS #1

PRINT ""
GOTO QUESTIONS:

SUB BUILDLST
OPEN "LIST.TMP" FOR OUTPUT AS #1
PRINT #1, "A,!, - The letter A"
PRINT #1, "MOUSE,!, - Mouse: A computer hardware device"
PRINT #1, "CD,!, - CD: Compact disc"
PRINT #1, "EXAMPLE,!, - Example: Example, exalple, ex."
PRINT #1, "B,!, - The letter B"
PRINT #1, "BYE,!, - Bye: Bye"
PRINT #1, "[END]"
CLOSE #1
END SUB

