这个例子昨天正好看了,话说那本书的例子都很不错~6 `; m3 d( \' t# C0 f+ N7 r( X
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
: D$ c/ G5 A6 y1 {is
# y) t# t$ y8 t0 a* K* v i,no,m:integer; --定义整型
) q4 M4 ^1 M* G9 Y7 l9 a Buf:object; --定义object
& G! v) c9 O6 g! @0 T, @3 Mdo
) o, y; B' x) j m:=0;, d7 L( y$ f" w# ~6 W* }% g* p+ [: Y
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
6 y0 f4 W6 F: \- | F% V for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行0 O0 s8 {6 x. }& |# Z
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
* e" j' J M4 a Q) D @._From:=PartsTable[5,i]; 7 ?4 y- N, h' N6 l6 Q. `" ?
@._To:=PartsTable[6,i];( h3 Y3 @; _4 K
if no=PartsNo+PartsTable[2,i] then
' r0 {/ k) N- E PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
8 q" L% N: T+ m9 V/ }& E8 J/ }& d0 q/ s( s) T8 C
end;
3 C& i. T/ y7 q5 v( H4 i0 ^ i:=PartsTable.YDim+1; H$ b' F1 C3 G E8 z2 I3 j/ g1 x
end;) X( B1 Q- D: X/ p6 |6 [
m:=m+PartsTable[2,i];' n' \6 |* z1 }( {- T
next;+ }. F9 T9 ^/ C" Q3 C1 M0 m! S
1 I1 ~! }, l8 Z( r b4 b Buf:=str_to_obj(sprint("BF",@._From));
. u, V& \( k9 o0 a8 w7 L @.move(Buf);
, `0 s& H* |; h8 M7 U* B( [end; |