这个例子昨天正好看了,话说那本书的例子都很不错~
. \2 y- z. h5 j( R- I4 G, N6 Y# z不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。& F5 L- y3 I+ d$ g7 Q6 d' e
is
* ~" n. Z' l' y3 |1 g) J t& L i,no,m:integer; --定义整型
; D5 h$ N4 c: m4 S4 X$ M Buf:object; --定义object$ k/ s' U, A4 m" J. e
do
: U7 I3 y( k/ v m:=0;
6 _3 R+ b; k- S- K no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 Z3 M% X0 @; J0 h( E: H
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ {# K; U( E1 d- R& B if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 x0 ^0 [" {6 x. Q
@._From:=PartsTable[5,i]; ' c, ?7 A: h+ p
@._To:=PartsTable[6,i];
# }3 ]+ _/ P2 U0 j4 V, b+ S if no=PartsNo+PartsTable[2,i] then
/ V0 r: a; Y. D9 k7 P% s/ ? PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 R9 X& ]1 s" ]1 ^' {! j; Y" @9 e
/ a1 ~' T, r! a/ V6 t
end;% \( h; B' O9 b2 U! W% g
i:=PartsTable.YDim+1;
; O' r# H' ^! w; g+ t end;# [- m' p# o* B6 V( m. y
m:=m+PartsTable[2,i];
+ u/ U5 a) u2 m) k7 ~ next; A, o) z! {4 {1 C7 S
) r2 F& c, [; Q7 K: l2 x' [
Buf:=str_to_obj(sprint("BF",@._From));/ l6 A) k3 Z. a! ^
@.move(Buf);
8 [8 |/ ~/ Z1 o# o# H9 b- _* s& pend; |