#cobol
#cobol
Вопрос:
Пытаюсь закодировать программу на cobol, и она продолжает обрабатывать несколько строк как одну строку при компиляции с opencobol (нужно использовать opencobol, я слышал, что GNU лучше), выдавая ошибки, код
IDENTIFICATION DIVISION.
PROGRAM-ID. InteractiveProcessing.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INVENTORY-FILE
ASSIGN TO "C:COBOLINVENTORY-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 с двух строк вниз, и я не могу понять, почему это происходит. Изменение кавычек с одинарных на двойные только в этой строке также приводит к неожиданной ошибке завершения файла.
Комментарии:
1. Я могу только догадываться здесь, поскольку он отлично компилируется, например, в tpcg.io/Yn040ANL (который использует GnuCOBOL 2.2), может быть, у вас есть ведущие вкладки и вы занимаете максимальную область текста программы? Я предлагаю скомпилировать
-Wall
и проверить наличие предупреждений.2. Backspaced в строке, а также при следующем отображении, и это как-то работает нормально. Вероятно, нужно еще немного поэкспериментировать, чтобы увидеть, что работает.
3. Я думаю , у вас там есть вкладки…
4. Возможно, вы захотите самостоятельно ответить на свой вопрос и принять это.
Ответ №1:
Проблема заключалась в том, что я использовал tab для выравнивания предложений PIC. Была такая же проблема в другой программе. Решается путем обратного перемещения вкладок, а затем просто с помощью пробела, чтобы переместить предложения в нужное место. В итоге выглядит так же, но на самом деле работает так.