我第一次尝试使用桌子而且我遇到了一个小问题。我已经弄清楚如何制作一个表,但我无法弄清楚如何搜索表或将存储的信息移动到另一个字段。这是表格:
01 SALESMAN-TABLE.
05 TABLE-ENTRIES OCCURS 99 TIMES.
10 SALESMAN-NUMBER PIC 99 VALUE ZEROS.
10 SALESMAN-NAME PIC X(20) VALUE SPACES.
01 SALESMAN-COUNT PIC 9(3) VALUE ZEROS.
这是我到目前为止尝试搜索数据的原因:
510-TABLE-SEARCH.
SEARCH TABLE-ENTRIES
WHEN SALESMAN-NUMBER (ROUTINE-CHECK) = ROUTINE-CHECK
PERFORM 520-WRITE-FILE
WHEN SALESMAN-NUMBER (ROUTINE-CHECK) = 0
CONTINUE
END-SEARCH.
这就是我用来移动数据的原因:
SET DL-NAME-COLUMN TO SALESMAN-NAME
但它表示即使SALESMAN-NAME是字母数字,DL-NAME-COLUMN也应该是数字。我该怎么办?任何帮助将不胜感激。
答案 0 :(得分:3)
您应该使用以下内容对表进行索引:
05 TABLE-ENTRIES OCCURS 99 TIMES INDEXED BY IND-TABLE-ENTRIES.
然后你可以使用SEARCH动词:
510-TABLE-SEARCH.
SEARCH TABLE-ENTRIES
UNTIL SALESMAN-NUMBER (IND) = 0
WHEN SALESMAN-NUMBER (IND) = ROUTINE-CHECK
PERFORM 520-WRITE-FILE
END-SEARCH.
表索引始终是数字,因为它们用作指针(它们包含内存地址)。 SET动词通常用于修改表索引。
答案 1 :(得分:0)
使用
MOVE SALESMAN-NAME (IND) TO DL-NAME-COLUMN
而不是
SET DL-NAME-COLUMN TO SALESMAN-NAME