Cobol 这个返回码是什么意思?IGYPS009-E
我正在编写一个COBOL代码,无法理解为什么这个错误代码 “打开”不应在区域“A”中开始。对其进行处理,就像在区域“B”中发现一样 具体而言,它指的是Cobol 这个返回码是什么意思?IGYPS009-E,cobol,mainframe,Cobol,Mainframe,我正在编写一个COBOL代码,无法理解为什么这个错误代码 “打开”不应在区域“A”中开始。对其进行处理,就像在区域“B”中发现一样 具体而言,它指的是开放式输入CUST-PROF *----------------------- IDENTIFICATION DIVISION. *----------------------- PROGRAM-ID. FSOC050 *-------------------- E
开放式输入CUST-PROF
*-----------------------
IDENTIFICATION DIVISION.
*-----------------------
PROGRAM-ID. FSOC050
*--------------------
ENVIRONMENT DIVISION.
*--------------------
INPUT-OUTPUT SECTION.
*
FILE-CONTROL.
SELECT CUST-PROF ASSIGN TO CUSTPROF
ORGANIZATION IS SEQUENTIAL.
*-------------
DATA DIVISION.
*-------------
FILE SECTION.
FD CUST-PROF RECORDING MODE F.
01 CUST-PROF-01.
05 CUST-NO PIC X(6).
05 CUST-NAME PIC X(35).
05 CUST-STREET-ADDR PIC X(25).
05 CUST-CITY PIC X(11).
05 CUST-STATE PIC X(2).
05 CUST-CARD-TYPE PIC X(4).
05 CUST-CARD-EXP-MO PIC X(2).
05 CUST-CARD-EXP-YR PIC X(2).
05 CUST-CARD-NO PIC X(19).
05 FILLER PIC X(21).
*
WORKING-STORAGE SECTION.
01 CUST-NO-SRCH PIC X(6).
01 FLAGS.
05 LASTREC PIC X VALUE 'N'.
88 LAST-REC VALUE 'Y'.
*------------------
PROCEDURE DIVISION.
*------------------
OPEN-FILES.
ACCEPT CUST-NO-SRCH.
*
DISPLAY "SEARCH RECORDS FOR " CUST-NO-SRCH.
*
OPEN INPUT CUST-PROF.
*
PERFORM UNTIL LAST-REC
READ CUST-PROF
AT END SET LAST-REC TO TRUE
NOT AT END
IF CUST-NO-SRCH = CUST-NO
DISPLAY "CUSTOMER NAME = "
CUST-NAME
END-IF
END-READ
END-PERFORM.
*
CLOSE CUST-PROF.
STOP RUN.
*
我已经对你的问题进行了编辑,添加了代码缩进,其中显示了有问题的行(你已经看到了): 如果缩进在您看来不一样,代码可能包含制表符 回到问题上来: 为什么会出现这样的错误代码 “打开”不应在区域“A”中开始。对其进行处理,就像在区域“B”中发现一样 编译器检查ANSI COBOL 85规则:语句应从区域B开始:
Columns Field Description
1-6 Sequence Area Often empty or line numbers, look out for shop specific rules
7 Indicator Asterisk (*) = comment line, Hyphen (-) = continuation line,
Slash ( / ) = form feed, D = debugging line
8-11 Area A COBOL definitions: divisions, sections, paragraphs, records and
some other entries must *begin* in Area A
12-72 Area B everything else, including COBOL statements, must begin in area B
73-nn Identification Area may contain notes, look out for shop specific rules
编译器说:我猜这一行应该是以
OPEN
语句开头的有效行。我已经编辑了你的问题,使代码缩进显示了有问题的行(你已经看到了):
如果缩进在您看来不一样,代码可能包含制表符
回到问题上来:
为什么会出现这样的错误代码
“打开”不应在区域“A”中开始。对其进行处理,就像在区域“B”中发现一样
编译器检查ANSI COBOL 85规则:语句应从区域B开始:
Columns Field Description
1-6 Sequence Area Often empty or line numbers, look out for shop specific rules
7 Indicator Asterisk (*) = comment line, Hyphen (-) = continuation line,
Slash ( / ) = form feed, D = debugging line
8-11 Area A COBOL definitions: divisions, sections, paragraphs, records and
some other entries must *begin* in Area A
12-72 Area B everything else, including COBOL statements, must begin in area B
73-nn Identification Area may contain notes, look out for shop specific rules
编译器说:我猜这一行应该是以
OPEN
语句开头的有效行。我写COBOL已经20年了,但我第一眼看到了错误。问问自己,为什么OPEN-INPUT
语句与其他语句排列不一致,你就会得到答案。我写COBOL已经20年了,但我一眼就看到了错误。问问自己为什么openinput
语句与其他语句排列不一致,你就会得到答案。