这个例子昨天正好看了,话说那本书的例子都很不错~
# E! U, ]' q% G3 R1 u不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, p/ Z0 o7 I" M
is
+ }, ]. p, g5 S0 F9 O( ?, w i,no,m:integer; --定义整型/ N9 N0 I* f) ]( f0 t( I
Buf:object; --定义object" g6 A, r1 w9 J
do
9 c0 u9 e* h/ }' }8 G+ `5 v m:=0;
0 K- K/ y7 f, K no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 v$ G: t2 z# }+ g/ Q for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
: a8 Q. S& [0 d if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 9 ~9 t, e( l" v
@._From:=PartsTable[5,i];
3 f+ Y1 d' B8 l. {) \ j @._To:=PartsTable[6,i];5 S( I* W7 N1 B
if no=PartsNo+PartsTable[2,i] then
& g: c$ }3 E0 Z: G: m% q PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)$ F& j; G4 ?' F# I2 R
& y, O' N4 G# Z) M$ p u: Q5 p! X9 G
end;# u* X' J: V/ C6 E o
i:=PartsTable.YDim+1;2 D# e, R' E' Z: H7 [5 C1 X# l; Z
end; o8 \ |1 G% g3 D$ Q& k3 _7 l
m:=m+PartsTable[2,i];7 u+ h. p. A+ U% V5 \
next;& n. n. q ~, H, Q% M$ o
: v. L( b2 N/ G: N) q; s4 W5 y2 Q Buf:=str_to_obj(sprint("BF",@._From));, g1 ^8 c% s! x/ t' E* ]3 M) R
@.move(Buf);
+ C! r( Q+ Y/ qend; |