您可以在同一行COBOL上接受两个输入吗?

时间:2019-02-24 19:58:16

标签: cobol

这很难解释,但是我有两列,一列是订购的商品,一列是商品的价格。在用户下需要输入计算机名称及其价格。我遇到的问题是,我需要在同一行上输入内容,但我不知道该如何使用COBOL。 应该看起来像的例子

订购的商品___________价格

计算机:戴尔______________ 250.00

我尝试使用

display "ITEMS ORDERED                       Price".
display "Computer: "with no advancing.
   accept DESCRIPTION-OF-LAPTOP with no advancing.
   accept LAPTOP-PRICE.

由于某种原因,这最终将其置于命令提示符的顶部。

1 个答案:

答案 0 :(得分:2)

使用标准ACCEPT语句,可以在同一行上输入两个(或更多)字段;但是,它被接受为单个数据项,然后必须对其进行解析以分隔字段。可以输入选项卡来对数据进行排队,使其看起来像是在两列中。

          ITEMS ORDERED            Price
Computer: Dell                    250.00
Computer: HP                      275.00
Computer:

在这些情况下,我使用了三个选项卡。但是,只需一个空格即可将价格与名称分开。因此条目看起来像这样,仍然可以接受:

          ITEMS ORDERED            Price
Computer: Dell                    2.00
Computer: Dell                    20.00
Computer: Dell                    200.00
Computer: Dell                    2000.00
Computer: Dell    2.00
Computer: Dell 20.00
Computer: Dell            200.00
Computer:

在保存数据之前,还需要其他代码来清理,解析和验证。 (为此,我使用了大约60行代码。)

使用SCREEN SECTION,可以定义每个字段的确切位置和定义,因此可以对齐列,无需解析,并且可以简化验证。

SCREEN SECTION作为 Processor-dependent 项添加到2002年标准中,并且不一定在所有其他符合要求的编译器上都可用。但是,自1980年代以来,该功能已以某种形式在编译器中可用。