我在大学的第二个学期,正在学习“高级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.
From 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之外的任何字符,则会报错。