>USE Results IN 1 >USE Phrases IN 2 >SELECT Results >FOR Recrd = 1 TO LastEntry > GOTO Recrd > RecordText = Results.SiteText > SELECT Phrases > ThePhrase = ALLTRIM(UPPER(WordUsed)) > IF ALLTRIM(UPPER(ThePhrase)) $ ALLTRIM(UPPER(RecordText)) > FOR PhraseRecord = 1 TO PhraseEnd > GOTO PhraseRecord >* AT(cSearchExpression, cExpressionSearched [, nOccurrence]) > PhrasePosition = AT(ThePhrase,RecordText,1) >* SUBSTR(cExpression, nStartPosition [, nCharactersReturned]) > PhrasePosition = PhrasePosition - 20 > ? PhrasePosition (ALWAYS MINUS 20) &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& > ThePhrase = SUBSTR(RecordText,PhrasePosition,60) > ? ThePhrase (ALWAYS BLANK - NO RESULT) &&&&&&&&&&&&&&&&&&&&&&&&&& > NEXT PhraseRecord > ENDIF >SELECT Results >NEXT Recrd >Try using SCAN and SEEK/SCAN WHILE instead of your code.
USE Results IN 0 SHARED USE Phrases IN 0 SHARED SELECT Results SCAN RecordText = UPPER(ALLTRIM(Results.SiteText)) SELECT Phrases LOCATE FOR UPPER(ALLTRIM(WordUsed)) $ m.RecordText IF FOUND() ** Some code goes here ENDIF ENDSCAN