Использование переменной в предложении INSPECT - PullRequest
0 голосов
/ 27 декабря 2011

Я пытаюсь использовать предложение INSPECT, чтобы увидеть, содержит ли имя (PIC X) определенную подстроку.

Когда я использую

INSPECT NAME TALLYING COUNTER FOR ALL "lee"

Программа работает, как и ожидалось,

Когда я заменяю «Ли» на переменную, команда ничего не находит.

...
WORKING-STORAGE SECTION.
   01  ZOEKTERM   PIC X(40).
...
MOVE "lee" TO ZOEKTERM
INSPECT NAAM TALLYING COUNTER FOR ALL ZOEKTERM

Может кто-нибудь объяснить, почему это происходит и что я могу с этим сделать?

Ответы [ 3 ]

1 голос
/ 28 декабря 2011

Бо Перссон прав. Если вы прочитаете «Цикл сравнения» в документации , вы увидите

Первое сравнение сравнивается с равным количеством крайних слева смежных позиций символов в проверяемом элементе. Сравнение соответствует проверенным символам, только если оба они равны, символ за символом.

1 голос
/ 28 декабря 2011

Исправлено точное указание длины.

...
WORKING-STORAGE SECTION.
   01  ZOEKTERM   PIC X(40).
   01  ZOEKTERM-LEN PIC S9(4) COMP.
...
MOVE "lee" TO ZOEKTERM
MOVE 3 TO ZOEKTERM-LEN 
INSPECT NAAM TALLYING COUNTER FOR ALL ZOEKTERM(1:ZOEKTERM-LEN)
1 голос
/ 27 декабря 2011

Буква 'lee' состоит из трех символов, а ZOEKTERM - 40 символов.

Это влияет на подстроки, которым они могут соответствовать.

...