RPGLE中%扫描和%查找之间的差异?

时间:2014-09-17 11:09:31

标签: lookup rpgle

如果我扫描NDIA' in' INDIAN'通过使用%scan(),返回大于0的值。如果我在数组中使用%lookup()执行相同操作,则返回0。为什么呢?

计划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

计划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

两个计划有什么区别?

1 个答案:

答案 0 :(得分:4)

%lookup()查找完全匹配,而不是部分匹配。如果您更改%lookup以查找“INDIA”,它将返回匹配。

顺便说一下,没有理由在两个示例中使用Fixed Format C规范。他们可以完全/自由。