这个例子昨天正好看了,话说那本书的例子都很不错~* v, E3 P6 \8 `
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
# L+ V5 H+ t* lis
0 h' D+ s' F% e2 I4 j% N4 L i,no,m:integer; --定义整型
( ~$ ~# I+ G1 x2 p" q Buf:object; --定义object
% M% R* f) f9 j0 @$ B9 O! Mdo5 {- k C9 x! Y4 \2 s+ D8 {$ X7 I
m:=0;
' v1 `$ n; a& F/ e6 z1 U* G( Q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)( y H% n, f2 d" O, n3 V
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
: \& R# @6 o' r% |# W( ]& O if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + ^/ F) i6 A* ~! h& @
@._From:=PartsTable[5,i]; % F7 i1 K% H9 F/ o7 ]- e
@._To:=PartsTable[6,i]; |5 Y1 n0 l, O- [% d+ i9 V
if no=PartsNo+PartsTable[2,i] then
; K$ E$ l: C& U# X PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)+ Y" @* n* w! v
6 V# a- x7 a. q. K6 ~- p) ~2 @
end;0 o, G: H9 z/ Z- l( _2 e% B4 V
i:=PartsTable.YDim+1;
5 [: p* }* |2 @; [3 n end;- i6 J; q% o$ ^" y
m:=m+PartsTable[2,i];! J+ b3 s. g) G! _9 V
next;2 H- s2 Q: V) S, \8 B; L7 a
9 y5 M( a/ G: h1 O Buf:=str_to_obj(sprint("BF",@._From));
$ _" ]2 A% z R( N2 F$ _ @.move(Buf);) o' w' G2 c& `! a- e
end; |