这个例子昨天正好看了,话说那本书的例子都很不错~
) c" k0 w6 c5 V7 V- x A不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。* N0 m0 {( A# h" {& w, ~% F+ G; p
is% n3 ?, v3 ~3 l0 T% Z0 l7 @
i,no,m:integer; --定义整型" i6 A# I7 U' J8 [8 t
Buf:object; --定义object+ C. D0 t. l& I" ~) ~+ Y1 A
do! w, i' s$ i% k1 i8 Z6 S( N- ]) @5 {
m:=0;
/ g0 F* I( l0 f* e+ P4 ~2 q- q$ x no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)" D; \. f; k6 M. p7 J# I
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
9 x1 o" K* u& O if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 7 r1 ^! z* ?5 ]3 B$ |) i
@._From:=PartsTable[5,i]; ! }2 I& O; l8 F4 s4 T: D0 T
@._To:=PartsTable[6,i];$ V: k- z6 `( P% x* V
if no=PartsNo+PartsTable[2,i] then + F" r& @( u! V, q8 |6 n4 F
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 n9 ^% \0 r3 S) @# E! E
6 S! G J: R3 L$ O+ z end;
& I' U7 ^4 G) V& n% O j, y8 s i:=PartsTable.YDim+1;
* t* R4 i( U% j6 d$ Y+ } end;; J( P: C3 E% h* t3 @1 c
m:=m+PartsTable[2,i];! C9 t3 S9 @3 o1 I( C8 ]6 F
next;- d) D! P4 i0 P8 o; S) a, \
0 ?6 O( Q! F& l, g# E
Buf:=str_to_obj(sprint("BF",@._From));6 T+ M+ @1 J- B
@.move(Buf);
) d- U" o s$ a( }4 n* [4 Wend; |