'=========================================================================== ' Subject: FIND POSITION OF WORD IN STRING Date: 05-01-96 (19:29) ' Author: Dave Navarro, Jr. Code: PB ' Origin: dave@powerbasic.com Packet: TEXT.ABC '=========================================================================== '============================================================================= ' Source code snippet: PowerBASIC for DOS ' ' Author: Dave Navarro, Jr. (dave@powerbasic.com) ' Copyright status: Public Domain ' ' Returns the position of a word in a string. It must be a complete word, ' and not part of another word (such as "BOB" in "BOBBY"). ' '============================================================================= DIM Text AS STRING DIM Find AS STRING Text = "Main$ = UCASE$(Main$)" Find = "UCASE$" PRINT Find PRINT Text x = IsWord(0, Text, Find) IF x THEN PRINT SPACE$(x-1);"^" '**************************************************************************** 'IsWord - Return the position of the specified complete word in a string ' FUNCTION IsWord(BYVAL Start AS INTEGER, BYVAL Main AS STRING, BYVAL Search AS STRING) DIM Delimeters AS STRING DIM FrontChr AS STRING DIM BackChr AS STRING DIM Where AS INTEGER Delimeters = " ()+-*\/<>;=:',^" + CHR$(34) Main = UCASE$(Main) Search = UCASE$(Search) IF Start < 1 THEN Start = 1 END IF Where = INSTR(Start, Main$, Search$) IF Where THEN IF Where > 1 THEN FrontChr = MID$(Main, Where-1, 1) END IF IF Where + LEN(Search) <= LEN(Main) THEN BackChr = MID$(Main, Where+LEN(Search), 1) END IF IF (LEN(FrontChr) = 0) OR (INSTR(FrontChr, ANY Delimeters) > 0) THEN Front = -1 END IF IF (LEN(BackChr) = 0) OR (INSTR(BackChr, ANY Delimeters) > 0) THEN Back = -1 END IF IF (Front = -1) AND (Back = -1) THEN FUNCTION = Where END IF END IF END FUNCTION