Reputation: 55
If I scan 'NDIA' in 'INDIAN' by using %scan(), a value greater than 0 returned. If I do same using %lookup() in an array then 0 is returned. Why?
Program 1
D VAR1 s 10a inz('INDIAN')
D S1 S 10S 0
C 'NDIA' SCAN VAR1 S1
C S1 DSPLY
/free
*inlr = *on;
/end-free
Program 2
D ARR1 s 10a DIM(5)
D S1 S 10S 0
C EVAL ARR1(1) = 'AMERICA'
C EVAL ARR1(2) = 'INDIA'
C EVAL ARR1(3) = 'CHINA'
/free
S1 = %LOOKUP('NDIA':ARR1);
DSPLY S1;
*inlr = *on;
/end-free
What is difference in both programs?
Upvotes: 0
Views: 11928
Reputation: 1597
%lookup() looks for an exact match, not a partial match. If you change your %lookup to look for 'INDIA' it will return a match.
By the way, there is no reason to use the Fixed Format C specs in both of your examples. They can be entirely /free.
Upvotes: 4