2013-03-26 165 views
1

我們有一個COBOL程序,在該程序中我們將值填充到COBOL內部表中,然後搜索此表以找出某個值。在此搜索之前,我們初始化表索引變量。在cobol中初始化一個索引變量

SET PAF-IDX     TO 1. 

任何人都可以澄清,如果允許在COBOL中初始化一個索引變量loke這個。

INITIALIZE     PAF-IDX. 

回答

3

不,您爲什麼要「初始化」它?

這是IBM企業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. 

草案的Cobol標準不太明確,但這些項目在INITIALIZE中使用時,通過生成SET而不是MOVE:DATA-POINTER,FUNCTION-POINTER,OBJECT-REFERENCE或PROGRAM-POINTER來處理。

編輯:

鑑於所述OpenCobol引用不是「特定」爲我想:在IBM的Cobol,目前,沒有什麼不能被通過作爲MOVE的目標可以被初始化操作。這與目前的OpenCobol相同。草案Cobol有一些例外,列出,但既不包括INDEXED BY(它不是表本身的一部分,但是編譯器本身定義存儲的單獨項),也不包括USAGE INDEX。