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

Can you accept two inputs on same line COBOL?

很难解释,但我有两列,一列是订购的商品,一列是商品的价格。在用户需要输入计算机名称及其价格。我遇到的问题是我需要在同一行输入并且不知道如何输入,因为我是 COBOL 的新手。 它应该是什么样子的例子是

商品ORDERED___________价格

计算机:Dell______________250.00

我尝试使用

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

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

使用标准的ACCEPT语句,可以在同一行输入两个(或更多)字段;然而,这被接受为一个单独的数据项,然后必须对其进行解析以分离字段。可以输入制表符来排列数据,使其看起来像在两列中。

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

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

          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 作为 依赖于处理器的 项添加到 2002 标准中,不一定在每个符合标准的编译器上都可用。但是,自 1980 年代以来,该功能以某种形式在编译器中可用。