% scan()을 사용하여 'INDIAN'에서 'NDIA'를 스캔하면 0보다 큰 값이 반환됩니다. 배열에서 % lookup()을 사용하면 동일하면 0이 반환됩니다. 왜?RPGLE에서 % 검색과 % 조회의 차이점은 무엇입니까?
프로그램 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
두 프로그램의 차이는 무엇입니까?
매번 arr (1)을 다시로드하므로 배열의 값이 'CHINA'인 요소가 하나만 있습니다. 코드 또는 게시물의 오타가 있습니까? – Charles
아 죄송합니다 ... 제 실수였습니다. 이제 코드가 편집되어 이제 plz reply가됩니다 ... –
차이점은 한 예에서는 % SCAN()을 사용하고 다른 예에서는 % LOOKUP()을 사용한다는 것입니다. 그것들은 두 가지 다른 일을하는 두 가지 다른 기능입니다. 왜 그들이 똑같이 작동 할 것이라고 기대합니까? 당신은 % LOOKUP()에서'NDIA'를 사용합니다, 그러나 당신은 그 배열의 어떤 요소에서도 그 값을로드하지 않았습니다. ('NDIA'<> 'INDIA') 이러한 요소가 없으므로 함수는 0을 반환합니다. – user2338816