这里非常基本的问题。
我必须为 COBOL 程序编写数据词汇表。该数据词汇表包含有关每个变量的以下详细信息:
- 姓名
- 数据类型
- 值范围(如果适用)
- 行号
- 全名
我有几个变量,包括 88 级开关。我的问题是:这些 88 级开关是否算作变量,我应该将它们包含在数据词汇表中吗?或者,从我必须使用的数据词汇表结构来看,在这种情况下是否应该忽略它们?
当我在这里时,另一个简单的问题。填充词是否应该包含在数据词汇表中?这个程序特别包含很多填充变量,大多数是简单的“PIC X”变量。
这里非常基本的问题。
我必须为 COBOL 程序编写数据词汇表。该数据词汇表包含有关每个变量的以下详细信息:
我有几个变量,包括 88 级开关。我的问题是:这些 88 级开关是否算作变量,我应该将它们包含在数据词汇表中吗?或者,从我必须使用的数据词汇表结构来看,在这种情况下是否应该忽略它们?
当我在这里时,另一个简单的问题。填充词是否应该包含在数据词汇表中?这个程序特别包含很多填充变量,大多数是简单的“PIC X”变量。
假设我理解被问到的问题。
如果您可以举一个带有 COBOL 布局和数据词汇表条目的示例,一个有 88 条目,一个没有 88 条目,将会有所帮助。不过,我会尽力回答这个问题。
不,88 级条目不是变量,它们不会增加或减少记录的长度。它们只是允许您创建条件语句。
话虽如此,您的数据词汇表是否应该只包含有助于记录长度的变量?
如果是,那么每个 88 项不应有单独的数据词汇表条目。但是,它可能有助于解释给定变量的值 [s](3 甚至 5 甚至是预期值的额外行)。
01 record-store.
02 location pic 9(4).
88 dist-center value 100, 101, 102.
02 value pic 9(6).
02 paid pic X(1).
88 yes value 'Y', 'y'.
88 no value 'N', 'n'.
您的数据词汇表将/可能是:
现在知道了您的预期值,您可能会返回并更改您的 88 值?
...
02 location pic 9(4).
88 dist-center value 100, 101, 102.
88 customers value 1 thru 99.
88 invalid value 0, 103 thru 9999.
...
如果没有,那么:
您可以在 88 级条目之前有一个单独的数据词汇表条目。
您的数据词汇表将/可能是:
'PIC X' FILLER 变量可能是 88 级工作存储中的标志,因此非常重要。
例如,我们经常使用这种类型的构造:
01 FILLER PIC X.
88 OPTION-IS-ON VALUE 'Y', FALSE 'N'.
88 OPTION-IS-OFF VALUE 'N'.
这定义了一个我们只使用它的条件引用的标志。例如,我们可能会这样使用它:
SET OPTION-IS-ON TO TRUE. | This puts a 'Y' in the PIC X
.
.
.
IF OPTION-IS-ON
do something
END-IF
在这种情况下,我们永远不需要引用实际的标志值本身,因此您不需要给它命名。
88 级中的 'FALSE' 只允许您指定使用语句时存储的内容:
SET OPTION-IS-ON TO FALSE | This puts an 'N' in the PIC X
这当然与说:
SET OPTION-IS-OFF TO TRUE | This also puts an 'N' in the PIC X
这一切都取决于当时什么更具可读性。
像往常一样,这取决于。:-)
88 级值似乎属于第 3 部分“值范围”,特别是如果它们记录了某些变量允许的唯一值。
如果文档用于重建记录,则 FILLER 字段当然很重要。如果您只是想记录其他字段的用法,它们并不是很有趣。