BBS: Inland Empire Archive Date: 02-23-93 (22:26) Number: 395 From: QUINN TYLER JACKSON Refer#: NONE To: ALL Recvd: NO Subj: Intrest.Bas 1/ Conf: (2) Quik_Bas
'
' * *
' **o************************************o**
' ** INTREST.BAS v1.0 (Public Domain) **
' * Written by *
' * Quinn Tyler Jackson *
' * of *
' * JackMack Consulting & Development *
' * *
' * QBS: YES! *
' ** BASIC Code Cache: YES! **
' **o************************************o**
' * *
'
' CAVEAT: The following program uses PDS/VBDOS extensions of the
' QuickBASIC language. It may be modified to work under
' QB 4.5, but that would take some work on your part.
' Keywords to be on the lookout for include PRESERVE.
' GOAL:
' An odd way of looking at text to see if it is worth reading.
' I wrote it as an intellegent way of scanning through a message
' base to find those random messages that might be interesting
' reading. Why not have some fun with it?
'
' The following TYPE declaration defines the variable type that must
' be passed to funInterest, which is the main interface function of
' this module.
TYPE InterestType
Total AS INTEGER
English AS INTEGER
Keywords AS INTEGER
Avoid AS INTEGER
Badwords AS INTEGER
END TYPE
CONST TRUE = -1
CONST FALSE = NOT TRUE
DEFINT A-Z
OPTION BASE 1
'$STATIC is best for the next array, which is always 100 words
DIM SHARED HundredTable$(100) ' 100 most common words in English
'$DYNAMIC because the next arrays may be redimensioned.
DIM SHARED CustomTable$(100) ' 100 custom words to start with
DIM SHARED AvoidTable$(100) ' custom words to avoid
DIM SHARED ObsceneTable$(100) ' obscene words to avoid
DIM SHARED BlankSpace$
text$ = "Sex and drugs are good for you, old man."
DIM WordArray$(1)
DIM Stats AS InterestType
' Set some weights
Stats.Keywords = 25
Stats.Badwords = 1
SELECT CASE funIntrest(text$, Stats, "d:\cust.txt")
CASE TRUE
PRINT "Text worth reading."
CASE FALSE
PRINT "Text not worth reading."
END SELECT
END
EnglishWordData:
' Below are listed the hundred most frequently used words in English.
' Taken from fifteen English authors and many newspapers. Compiled by
' Frank R. Fraprie. Taken from Helen Gaines Fouche's _Cryptanalysis_,
' which is published by Dover Publications since 1956. 50% of English
' text is made up of these words. Any disproportion indicates text that
' is either more difficult or more easy to read.
DATA the,of,and,to,a,in,that,is,I,it
DATA for,as,with,was,his,he,be,not,by,but
DATA have,you,which,are,on,or,her,had,at,from
DATA this,my,they,all,their,an,she,has,were,me
DATA been,him,one,so,if,will,there,who,no,we
DATA when,what,your,more,would,them,some,than,may,upon
DATA its,out,into,our,these,man,up,do,like,after
DATA shall,great,now,such,should,other,only,any,then,yet
DATA about,those,can,made,well,old,must,us,said,time,two
DATA time,even,new,could,very,much,own,most,might,first
ObsceneWordData:
' The following list, for reasons of echo decency, is mild. The SUB that
' initializes the variable ObsceneTable$() scans the following DATA
' until it reaches MOUTH_WITH_SOAP in the list. This allows everyone out
' there to add his own favotrite obscenities to this list, while allowing
' me to keep our echo clean.
DATA heck,gee,golly,gosh
DATA gads,wilikers,tarnation,MOUTH_WITH_SOAP
REM $STATIC
FUNCTION fqjBiSearch (Array$(), Find$)
' This is Ethan Winer's binary search function, modified a bit.
Target$ = UCASE$(Find$)
fqjBiSearch = 0 'no matching element yet
Min = LBOUND(Array$) 'start at first element
Max = UBOUND(Array$) 'consider through last
DO
Try = (Max + Min) \ 2 'start testing in middle
IF Array$(Try) = Target$ THEN 'found it!
fqjBiSearch = Try 'return matching element
EXIT DO 'all done
END IF
IF Array$(Try) > Target$ THEN 'too high, cut in half
Max = Try - 1
ELSE
Min = Try + 1 'too low, cut other way
END IF
LOOP WHILE Max >= Min
END FUNCTION
FUNCTION fqjDecide (Send AS InterestType)
' This is the FUNCTION that passes back TRUE if the statistics are
' considered interesting, or FALSE if not. It is up to the individual
' programmer to decide what should be interesting or not.
>>> Continued to next message
* SLMR 2.1a *
--- Maximus 2.01wb
* Origin: VKUG/VPCC QuickBasic Echo - Richmond, BC (1:153/151)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET