我在大学的第二季度参加了“高级COBOL”,我们刚刚收到一份任务,要求我们在一些验证程序中编写不同数据的代码。除了小型验证程序外,我已完成所有工作。大写字母的COBOL数据验证?
有一个名为“PART-NUMBER”的字段,长度为8个字节。前5列必须是数字。第6列必须是大写字母,最后2列必须在01-68或78-99的范围内。我唯一的问题是弄清楚如何验证第6列是资本。
这里是我使用的代码: 从工作空间:
01 DETAIL-LINE.
05 PART-NUMBER.
10 PART-FIRST-FIVE-DL PIC X(5).
10 PART-LETTER-DL PIC X.
88 CAPITAL-LETTER VALUE 'A' THRU 'Z'.
10 PART-LAST-TWO-DL PIC XX.
300-VALIDATE-PART-NUMBER
EVALUATE PART-LETTER-DL ALPHABETIC
WHEN TRUE EVALUATE CAPITAL-LETTER
WHEN FALSE MOVE 'YES' TO RECORD-ERROR-SWITCH
MOVE 'PART NUMBER' TO FIELD-NAME
MOVE PART-NO-IN TO FIELD-VALUE
MOVE 'YES' TO PART-NO-ERROR
END-EVALUATE
WHEN FALSE MOVE 'YES' TO RECORD-ERROR-SWITCH
MOVE 'PART NUMBER' TO FIELD-NAME
MOVE PART-NO-IN TO FIELD-VALUE
MOVE 'YES' TO PART-NO-ERROR
END-EVALUATE
我知道我可能不是在做这个非常有效的方式,但现在我只需要让它工作。我已经阅读了本书中关于数据验证的整章,这是最后一分钟的错误(程序将在明天到期),所以老师不可用。我将不胜感激任何帮助,我可以得到这一点。我真的很想知道我应该如何验证大写字母。如果A或Z以外的任何内容都在部件号的第6列中,我现在使用的方法会报告一个错误。
去年有人遇到了同样的问题,但并没有达到你所做的那样 - [数据验证(COBOL)](http://stackoverflow.com/questions/4719008/data-validation-cobol) - 但答案很好。 – sarnold
是的,我发现之前我发布了我的问题,但我根本不理解它。我认为这远远超出了我们迄今为止所教的内容。 – Shane