關於setll的用法

发表于:2007-06-08来源:作者:点击数: 标签:
知道的請告之,謝謝。 michael9406 回复于:2003-06-17 22:40:25 用在RPG中。取某一范围的记录。 *...1....+....2....+....3....+....4....+....5....+....6....+....7...+.... CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq...

知道的請告之,謝謝。

 michael9406 回复于:2003-06-17 22:40:25
用在RPG中。取某一范围的记录。
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
      CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
      C*  在ORDFIL中所有101记录都打印出来。101是予先放在ORDER中的。
      C*  SETLL把文件定位在有键值101的第一个记录上,指示器55为ON。
      C
      C     ORDER         SETLL     ORDFIL                                 55
      C
      C*  下例中DO处理在相同键值的所有记录,用指示器55来做DO循环的条件。
      C
      C   55              DOU       *IN56
      C     ORDER         READE     ORDFIL                                 56
      C  N56              EXCEPT    DETAIL
      C                   ENDDO

 tom9030 回复于:2003-06-18 12:22:04
謝謝先。     
C 55 DOU *IN56 
C ORDER READE ORDFIL 56 
C N56 EXCEPT DETAIL 
C ENDDO

是否指示器55為ON時,才執行DOU以後的語句,這樣有什麼意義?

另請教指示器有什麼作用啊,如:
C   10 20             WRITESUBTLN 
又如:
C  N57                MOVELNTDES     WSDES 

還有指示器在程序中一開始是否都為0,即off狀態?是否指示器為1,即on狀態就不執行了?

 多情包子 回复于:2003-08-03 15:52:07
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+.... 
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq.... 
setll 是把指针定位的那个值小于等于FACTOR1 
setll代码的下一句代码往往是read代码,但这行代码一般在Lo,Eq处分别放一个指针,如果Lo处指针为*off代表记录在被他人使用,Eq处指针为*off代表读取记录。

 sean810 回复于:2003-09-11 22:15:44
setll指令有两种情况:
   1)如果存在要找的内容,那么他的point就位于该记录的前面。换句话说,如果接下来的动作是read的话,那么他读到的就是你刚才要找的内容。
   2)如果不存在要找的内容,那么point就停在一个位置。而这个位置的前一笔资料的内容一定比你要找的内容小,后一笔的内容一定比你要找的内容大。而此时候执行read指令,你独到的是数据中比你要找的内容大一点点的。这个功能和setgt一样的。

 michael9406 回复于:2003-09-12 06:47:09
good article... thanks alll.

原文转自:http://www.ltesting.net