It was in that LEFT$ RIGHT$ extract like I thought!!
Here, Nathan, copy this back to QB.... Then check the parser SUB.. I have REMs telling you what you had wrong... or you can read 'em hear, but its all jumbled up..
Code: Select all
DECLARE FUNCTION CheckSpace! (Var AS STRING)
DECLARE SUB Parse (Answer$, Word1$, Word2$)
CLS
CONST True = 1, False = NOT True
Phrase1$ = "red vall."
Phrase2$ = "blue vall."
Parse Phrase1$, Word1$, Word2$
Parse Phrase2$, Word3$, Word4$
IF Word1$ = Word2$ THEN PRINT "Match!"
IF Word1$ = Word3$ THEN PRINT "Match!"
IF Word1$ = Word4$ THEN PRINT "Match!"
IF Word2$ = Word3$ THEN PRINT "Match!"
IF Word2$ = Word4$ THEN PRINT "Match!"
IF Word3$ = Word4$ THEN PRINT "Match!"
FUNCTION CheckSpace (Var AS STRING)
FOR i = 1 TO LEN(Var)
IF MID$(Var, i, i - 1) = " " THEN CheckSpace = True
NEXT
END FUNCTION
SUB Parse (Answer$, Word1$, Word2$)
Parse:
Answer$ = LTRIM$(RTRIM$(Answer$))
IF Answer$ = "" OR Answer$ = " " THEN Word$ = Answer$
Index = 0
DO
Index = Index + 1
IF MID$(Answer$, Index, 1) = " " THEN EXIT DO: GOTO ParserHandler
LOOP
ParserHandler:
Word1$ = LEFT$(Answer$, Index - 1)
num = LEN(Answer$) 'You had this so close, you
Answer$ = RIGHT$(Answer$, num - Index) 'did it backwards. RIGHT$
'reads from the right, so
'you have to subtract Index
IF CheckSpace(Answer$) THEN 'from the total number of
GOTO Parse 'characters... that gives
ELSE 'you the right calculation.
Word2$ = LTRIM$(RTRIM$(Answer$))
EXIT SUB
END IF
END SUB