用 S9(5)V9(8) COMP-3 填充区域

问题描述 投票:0回答:2

我想用这种类型的数据填充一个文件。

01 FILE-LINE.
    05   VAR1   PIC S9(5)V9(8) COMP-3.
    05   VAR2   PIC S9(15)V99 COMP-3.

谁能帮我填写这一行 当我将所有“0”放在这些字段上并测试

IS NUMERIC
时,它说它们不是数字

cobol mainframe
2个回答
1
投票

你可以尝试

Initialize FILE-LINE

初始化的规则有点复杂,但灵活性会带来复杂性,所以就这样了。

在这种情况下,因为您有数字数据项并且它们没有 VALUE 子句,所以 INITIALIZE 将执行与

Move Zeroes To VAR1
Move Zeroes To VAR2
等效的操作。


-1
投票

由于变量 VAR1 和 VAR2 已打包 (COMP-3) 并且属于组级别,因此您无法将 ZEROS 移动到组级别 FILE-LINE。相反,您必须明确地将 ZEROS 移至 VAR1 和 VAR2。

将所有“0”移动到文件行会导致 X'F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0'.

将 ZEROS 移至 VAR1 VAR2 结果为 X'0000000000000C00000000000000000C'.

© www.soinside.com 2019 - 2024. All rights reserved.