Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'Crossreference
- 'Benjy Berkowicz
- '6/9/11
- window 1, "Cross Reference", (0,0)-(700,530)
- dim linesarray$(50), wordsarray$(50), linescount(50), wordscount(50), wordappear(50)
- nonunique = 0
- DO
- gosub "heading"
- locate x,y:input "Enter your line of text: "; thisline$
- i = 0
- wordcount = 0
- wordsarray$(0) = "0"
- while thisline$ <> "*"
- i = i + 1
- linesarray$(i) = thisline$
- linesarray$(0) = str$(val(linesarray$(0)) + 1)
- locate x,y+i:input "Enter your line of text: "; thisline$
- wend
- gosub "ReadThrough"
- gosub "SortArray"
- gosub "PrintList"
- gosub "Clean"
- UNTIL ucase$(done$) = "N"
- end
- "Clean"
- wordsarray$(0) = "0"
- linesarray$(0) = "0"
- unique = 0
- nonunique = 0
- RETURN
- "Heading"
- cls
- TEXT _times, 20, _boldBit%
- color _zRed
- print %(160,30) "Welcome To Cross Reference!"
- TEXT _applFont, 16, 0
- color _zBlack
- let x = 2
- let y = 2
- RETURN
- "ReadThrough"
- FOR i = 1 to val(linesarray$(0))
- tempword$ = ""
- FOR j = 1 to len(linesarray$(i))
- extr$ = mid$(linesarray$(i),j,1)
- punc = 0
- gosub "CheckPunc"
- long if letter <> 1
- long if tempword$ <> " "
- gosub "IfWordExistsAdd"
- end if
- xelse
- tempword$ = tempword$ + mid$(linesarray$(i),j,1)
- end if
- long if j = len(linesarray$(i))
- 'gosub "IfWordExistsAdd"
- end if
- NEXT j
- NEXT i
- RETURN
- "CheckPunc"
- letter = 0
- alph$ = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
- FOR k = 1 to len(alph$)
- long if extr$ = mid$(alph$,k,1)
- letter = 1
- end if
- NEXT k
- RETURN
- "IfWordExistsAdd"
- thisnum = 0
- unique = 1
- DEF LCASE(tempword$)
- FOR m = 1 to val(wordsarray$(0))
- long if wordsarray$(m) = tempword$
- unique = 0
- thisnum = m
- END IF
- NEXT m
- LONG IF unique = 1
- tz = val(wordsarray(0)) + 1
- wordsarray$(0) = str$(tz)
- tz = 0
- temp = val(wordsarray$(0))
- wordsarray$(temp) = tempword$
- wordscount(temp) = 1
- wordappear(temp) = val(wordsarray$(0))
- linescount(temp) = i
- XELSE
- wordscount(thisnum) = wordscount(thisnum) + 1
- nonunique = nonunique + 1
- END IF
- tempword$ = ""
- RETURN
- "SortArray"
- DO
- swapped = 0
- FOR j = 1 to val(wordsarray$(0))-1
- temp = wordscount(j)
- temp2 = wordscount(j+1)
- LONG IF temp < temp2
- gosub "Swap"
- swapped = 1
- END IF
- NEXT j
- UNTIL swapped = 0
- RETURN
- "PrintList"
- gosub "Heading"
- print "Word", "Frequency", "In Line", "Word Number"
- FOR i = 1 to val(wordsarray$(0))
- locate x,y+i+1:print wordsarray$(i), wordscount(i), linescount(i), wordappear(i)
- NEXT i
- print ""
- locate x,y+val(wordsarray$(0))+3:print "Total words = " + str$(val(wordsarray$(0)) + nonunique)
- locate x,y+val(wordsarray$(0))+4:print "Total unique words = " + wordsarray$(0)
- locate x,y+val(wordsarray$(0))+5:input "Do you want to go again (Y/N)? ";done$
- RETURN
- "Swap"
- temp1$ = wordsarray$(j)
- temp2 = wordscount(j)
- temp3 = linescount(j)
- temp4 = wordappear(j)
- wordsarray$(j) = wordsarray$(j+1)
- wordscount(j) = wordscount(j+1)
- linescount(j) = linescount(j+1)
- wordappear(j) = wordappear(j+1)
- wordsarray$(j+1) = temp1$
- wordscount(j+1) = temp2
- linescount(j+1) = temp3
- wordappear(j+1) = temp4
- RETURN
Add Comment
Please, Sign In to add comment