Как проверить, что отрицательное значение передается как буквенно-цифровой литерал?

По сути, мне был предоставлен входной файл, в который также передается сочетание буквенно-цифровых и числовых полей. Моя цель - проверить каждое поле на наличие достоверных данных. Первое поле представляет собой буквенно-цифровое значение с описанием Pic X (3), которое должно представлять собой число. Однако, поскольку я проверяю достоверность данных, будут случаи, когда значение может содержать букву, такую ​​как 0R1 или отрицательное значение -001.

При тестировании данных использование теста «Является числовым» отлично подходит для поиска значений, не являющихся числовыми. Однако он не проходит тест, когда передается отрицательный знак. Я предполагаю, что это происходит, потому что он распознает, что тире или отрицательный символ (-) не является числовым символом. Моя общая цель - проверить, является ли число одновременно числовым и положительным, но с учетом вышеуказанных обстоятельств у меня возникают проблемы с прохождением правильного теста.

Есть какие-нибудь рекомендации о том, как это преодолеть?

Спасибо


person localsxonly    schedule 28.02.2020    source источник
comment
Вы нашли ответ, который вам подходит? Если да, пожалуйста, примите (в настоящее время он открыт), в противном случае я предлагаю прокомментировать ответ.   -  person Simon Sobisch    schedule 15.04.2020


Ответы (1)


Я предлагаю использовать FUNCTION TEST-NUMVAL(some-data), если вам нужна хорошая проверка всего, что определяется как буквенно-цифровое / буквенное; если это пройдет, вы можете использовать FUNCTION NUMVAL(some-data) для получения фактического значения.

Более подробную информацию вы можете найти в текущем проекте стандарта COBOL.

person Simon Sobisch    schedule 28.02.2020