Мой офис использует встроенный инструмент, который может генерировать программу форматирования COBOL, загрузку программы COBOL File в DB2 и другие связанные объекты из DDL. Обычно загружаемые файлы разделяются символом '|' но новый источник данных отправляет только файлы, разделенные запятой.Игнорирование запятых в кавычках в программе форматирования COBOL
Проблема, с которой я столкнулся, заключается в том, что некоторые текстовые поля содержат в себе запятые, и первое, что делает программа форматирования после прочтения записи во входных данных, выполняется проверкой/подсвечностью, чтобы проверить правильность количества разделителей. в записи. Если подсчитывается слишком много разделителей, запись отбрасывается. Когда запятая находится в текстовом поле, она не выполняет запись, потому что она не может отличить запятую от поля и разделителя.
К счастью, все текстовые поля окружены кавычками "
, поэтому я собираюсь написать код, который будет проверять каждый символ записи по одному, сохраняя подсчет котировок, и если он встречается с запятой, а счетчик котировок нечетное число, это будет игнорировать запятую и не считать ее в подсчете.
Любые предложения о том, как это сделать?
Можно ли считать z/OS, или это LUW DB2? –
О да, извините, я забыл о том, что это z/OS – mmackenzie93
Вы * можете * сделать это в COBOL, примерно так, как вы начертили, но вы можете захотеть использовать SORT для принятия/отклонения файла. Вы можете подсчитать запятые, подсчитать кавычки и запятую минус (кавычки разделены на два) - это количество полей. Если вы хотите это учесть, вы можете задать другой вопрос либо с тегом DFSORT, либо с SyncSORT (в зависимости от того, что у вас есть), а также включить ссылку на версию вашего продукта. –