Cobol 在不应将多行视为一行时
Cobol Treating Multiple Lines as One Line When it Should Not
尝试编写一个 cobol 程序,并在使用 opencobol 编译时将多行视为一行(必须使用 opencobol,我听说 GNU 更好),出现错误
密码是
IDENTIFICATION DIVISION.
PROGRAM-ID. InteractiveProcessing.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INVENTORY-FILE
ASSIGN TO "C:\COBOL\INVENTORY-FILE.DAT"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD INVENTORY-FILE.
01 FILE-OUTPUT.
05 PART-NO PIC X(5).
05 PART-DESC PIC X(15).
05 QTY-ON-HAND PIC 9(5).
05 UNIT-PRICE PIC 999V99.
WORKING-STORAGE SECTION.
01 MORE-DATA PIC X(3) VALUE 'YES'.
PROCEDURE DIVISION.
100-MAIN-MODULE.
OPEN OUTPUT INVENTORY-FILE
PERFORM UNTIL MORE-DATA = 'NO '
PERFORM 200-INVENTORY-MODULE
DISPLAY 'ENTER MORE DATA? (YES/NO)'
ACCEPT MORE-DATA
END-PERFORM
CLOSE INVENTORY-FILE
STOP RUN.
200-INVENTORY-MODULE.
DISPLAY 'ENTER PART NUM (5 CHARACTERS)'
ACCEPT PART-NO
DISPLAY 'ENTER PART DESCRIPTION (15 CHARACTERS)'
ACCEPT PART-DESC
DISPLAY 'ENTER QUANTITY ON HAND(INTEGER, UP TO 5 DIGITS)'
ACCEPT QTY-ON-HAND
DISPLAY 'ENTER UNIT PRICE (5 DIGITS, 2 AFTER DECIMAL)'
ACCEPT UNIT-PRICE
WRITE FILE-OUTPUT.
我一直说的错误
'ENTER' undefined
和
syntax error, unexpected UNIT
出现错误的行是
DISPLAY 'ENTER QUANTITY ON HAND(INTEGER, UP TO 5 DIGITS)'
错误来自两行以下的 ENTER 和 UNIT,我不明白为什么会这样。仅将该行的引号从单引号更改为双引号,也会出现意外的文件结尾错误。
问题是我使用制表符来对齐 PIC 条款。在另一个程序中有同样的问题。通过退格标签然后只使用空格键将子句放到正确的位置来解决。最后看起来一样,但实际上 运行 这样。
尝试编写一个 cobol 程序,并在使用 opencobol 编译时将多行视为一行(必须使用 opencobol,我听说 GNU 更好),出现错误 密码是
IDENTIFICATION DIVISION.
PROGRAM-ID. InteractiveProcessing.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INVENTORY-FILE
ASSIGN TO "C:\COBOL\INVENTORY-FILE.DAT"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD INVENTORY-FILE.
01 FILE-OUTPUT.
05 PART-NO PIC X(5).
05 PART-DESC PIC X(15).
05 QTY-ON-HAND PIC 9(5).
05 UNIT-PRICE PIC 999V99.
WORKING-STORAGE SECTION.
01 MORE-DATA PIC X(3) VALUE 'YES'.
PROCEDURE DIVISION.
100-MAIN-MODULE.
OPEN OUTPUT INVENTORY-FILE
PERFORM UNTIL MORE-DATA = 'NO '
PERFORM 200-INVENTORY-MODULE
DISPLAY 'ENTER MORE DATA? (YES/NO)'
ACCEPT MORE-DATA
END-PERFORM
CLOSE INVENTORY-FILE
STOP RUN.
200-INVENTORY-MODULE.
DISPLAY 'ENTER PART NUM (5 CHARACTERS)'
ACCEPT PART-NO
DISPLAY 'ENTER PART DESCRIPTION (15 CHARACTERS)'
ACCEPT PART-DESC
DISPLAY 'ENTER QUANTITY ON HAND(INTEGER, UP TO 5 DIGITS)'
ACCEPT QTY-ON-HAND
DISPLAY 'ENTER UNIT PRICE (5 DIGITS, 2 AFTER DECIMAL)'
ACCEPT UNIT-PRICE
WRITE FILE-OUTPUT.
我一直说的错误
'ENTER' undefined
和
syntax error, unexpected UNIT
出现错误的行是
DISPLAY 'ENTER QUANTITY ON HAND(INTEGER, UP TO 5 DIGITS)'
错误来自两行以下的 ENTER 和 UNIT,我不明白为什么会这样。仅将该行的引号从单引号更改为双引号,也会出现意外的文件结尾错误。
问题是我使用制表符来对齐 PIC 条款。在另一个程序中有同样的问题。通过退格标签然后只使用空格键将子句放到正确的位置来解决。最后看起来一样,但实际上 运行 这样。