сканированию для 'PREFIX', то есть, с начальным пробелом. Если вы не можете гарантировать, что всегда существует пробел после ключевого слова PREFIX, вы также не можете полагаться на конечное пространство в строке поиска. (Вы можете попробовать его.)
Для более обширного тестирования:
Если стандарты кодирования не поддерживают ясный синтаксис, вам необходимо расширить логику. Это утверждение находит где PREFIX
найдено:
C 'PREFIX' SCAN SRCDTA S1
Он хранит местоположение в S1
. Затем вы можете использовать S1
, чтобы проверить, содержит ли позиция перед пробелом или «)». Если вы найдете какие-либо другие символы, которые действительны, логику можно расширить, чтобы проверить наличие допустимых символов. Кроме того, вы знаете, что PREFIX
длиной шесть символов, так что вы можете проверить символ в позиции S1+6
, чтобы увидеть, если это пустой или «(» или другой допустимый символ.
Когда ваша программа находит PREFIX
и он также находит что оба предшествующих и последующих символа приемлемы, он должен знать, что он нашел совпадение, которое подходит.
Когда SCAN
находит совпадение, вы, вероятно, должны передать исходную строку подпроцедуре, которая проверяет предыдущие и последующие символы и возвращает значение индикатора. Индикатор сообщит вашей программе, если это хорошо соответствует или нет.
Вы также можете не использовать SCAN
. Используйте вместо этого BIF %scan()
и используйте стиль кодирования свободной формы.
Но если PREFIX выглядит следующим образом FTCSPREFIX IF E DISK RENAME (TCSPREFIX: TESTPR) PREFIX (@). Будет ли оно сканироваться точно? –