Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Comparison != What have I missed?
Message
From
14/12/2012 12:20:26
 
 
To
14/12/2012 11:05:14
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 7
Miscellaneous
Thread ID:
01559575
Message ID:
01559679
Views:
60
AND will be processed before OR, so in the first SCAN, it will do

m.TheWord3 $ lcTEXT AND ! m.TheWord3 == m.TheWord1

If that passes, VFP will process OR ! m.TheWord3 == m.TheWord2

The solution is to use parens

m.TheWord3 $ lcTEXT AND (! m.TheWord3 == m.TheWord1 OR ! m.TheWord3 == m.TheWord2)

This will force the OR to be processed before the AND.

>It's almost working, but 4 always equals 3 and I cannot see why.
>Here's the latest code (attempt):
>
>		SCAN
>			m.TheWord3 = ALLTRIM(LOWER(indicator)) && Symptom
>			IF m.TheWord3 $ lcTEXT AND ! m.TheWord3 == m.TheWord1 OR ! m.TheWord3 == m.TheWord2
>				REPLACE hits WITH indicator.hits + 1 && Gather simple stats
>				m.sidenote3 = action && Recommendation
>				SELECT MASTER
>				REPLACE indicator3 WITH m.sidenote3
>			ENDIF
>			SELECT indicators
>		ENDSCAN
>		SCAN
>			m.TheWord4 = ALLTRIM(LOWER(indicator)) && Symptom
>			IF m.TheWord4 $ lcTEXT AND ! m.TheWord4 == m.TheWord1 OR ! m.TheWord4 == m.TheWord2 OR ! m.TheWord4 == m.TheWord3
>				REPLACE hits WITH indicator.hits + 1 && Gather simple stats
>				m.sidenote4 = action && Recommendation
>				SELECT MASTER
>				REPLACE indicator4 WITH m.sidenote4
>			ENDIF
>			SELECT indicators
>		ENDSCAN
>
>
>
>
>>Are you sure m.TheWord2 is in lcText? If the first condition fails, VFP won't do the second. Perhaps you want an OR instead of AND?
>>
>>If the IF logic is correct, create a small dataset with two records, one that you know will pass and one that won't. Step through the code with the debugger. Check values of the variables before going into the IF statement. Also, check the value of SET("EXACT") at that same point.
>>
>>
>>>Thanks Craig and all who are helping. I've been using SET EXACT all along, but this little nipper is a PITA that has all indications of being one of those insignificant "I could have had a V8' moments. (something simple, but overlooked) I noticed that I misspelled 'sidenote' as 'sidenotes' also, but have replaced that portion below. Still no luck with this problem, but it's keeping my elderly brain working. :-)
Craig Berntson
MCSD, Microsoft .Net MVP, Grape City Community Influencer
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform