инициализировать индексную переменную в коболе

У нас есть программа COBOL, в которой мы заносим значения во внутреннюю таблицу COBOL, а затем ищем в этой таблице определенное значение. Перед этим поиском мы инициализируем переменную индекса таблиц.

SET PAF-IDX                  TO 1.   

Может ли кто-нибудь уточнить, разрешено ли в COBOL инициализировать переменную индекса, как это.

INITIALIZE                   PAF-IDX.

person jimsweb    schedule 26.03.2013    source источник


Ответы (1)


Нет. И почему вы хотите «ИНИЦИАЛИЗИРОВАТЬ» его?

Это из руководства IBM Enterprise Cobol:

identifier-1
Receiving areas.
identifier-1 must reference one of the following:
v An alphanumeric group item
v A national group item
v An elementary data item of one of the following categories:
Alphabetic
Alphanumeric
Alphanumeric-edited
DBCS
External floating-point
Internal floating-point
National
National-edited
Numeric
Numeric-edited
v A special register that is valid as a receiving operand in a MOVE
statement with identifer-2 or literal-1 as the sending operand.
When identifier-1 re

РЕДАКТИРОВАТЬ:

Руководство программиста OpenCobol документирует это конкретно:

The list of data items eligible to be set to new values by this statement is:
Every elementary item specified as identifier-1 ..., PLUS...
Every elementary item defined subordinate to every group item specified as dentifier-1 
..., with the following exceptions:
USAGE INDEX items are excluded.
Items with a REDEFINES as part of their definition are excluded; this means that
tems subordinate to them are excluded as well. 

Стандарт Draft Cobol менее явный, но эти элементы при использовании в INITIALIZE обрабатываются путем создания SET, а не MOVE: DATA-POINTER, FUNCTION-POINTER, OBJECT-REFERENCE или PROGRAM-POINTER.

РЕДАКТИРОВАТЬ:

Видя, что ссылка на OpenCobol не такая «конкретная», как я думал: в настоящее время в IBM Cobol ничто, чем нельзя манипулировать, будучи целью MOVE, не может быть ИНИЦИАЛИЗИРОВАНО. Это то же самое для текущего OpenCobol. У Draft Cobol есть некоторые исключения, перечисленные, но не включающие ни INDEXED BY (которые не являются частью самой таблицы, а отдельные элементы, для которых сам компилятор определяет хранилище), ни USAGE INDEX.

person Bill Woodger    schedule 26.03.2013