这个例子昨天正好看了,话说那本书的例子都很不错~
0 p/ U' N' [ `& ^' E' ^- [不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。! i; t/ l% {+ F$ L* G) q. ^/ w* t: F6 W
is
$ _$ j) I5 @( L i,no,m:integer; --定义整型
8 N b { Q( c, o% B% s Buf:object; --定义object
! ? O: w$ w+ b Z* Q; Tdo
% Z; o6 K" M( K" @: d m:=0;- i' T4 ^: p. C* P: k
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
' \0 h S8 c, A8 Q: y i for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
( _* d# ]& K5 Z S+ ~2 u if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! ]2 Z4 R9 `7 G" @" z @._From:=PartsTable[5,i]; ( i$ g/ x( r* S% e( D, g$ v
@._To:=PartsTable[6,i];
) m' t3 q. f V1 q if no=PartsNo+PartsTable[2,i] then - B3 |# u/ Y; t" @( n: V
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
2 R z3 V& ]6 i* P7 e3 X4 v/ s8 a- T3 P |5 v
end;
' v6 Z' ?4 f; G/ o0 U i:=PartsTable.YDim+1;
m: ?: o* B+ O, s0 \2 i. H end;* B- B8 n- U. x
m:=m+PartsTable[2,i];
. q4 h0 B9 F# a( y: b [ next;- u4 |" J) R! v: d3 }4 K
6 h6 ]: p$ h; \5 c Buf:=str_to_obj(sprint("BF",@._From));+ Q$ t; q) e- B c
@.move(Buf);
% \; e2 y( J: }% a1 z, Eend; |