这个例子昨天正好看了,话说那本书的例子都很不错~1 q. O5 H# `$ E
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
" j) O% @+ P9 t; uis
) g1 u2 g) p5 M: X6 ]) G! V4 ^& t i,no,m:integer; --定义整型, u5 j& I5 F: {' `
Buf:object; --定义object
9 u& C$ U( @( c( N: K- k9 Ddo
" ?6 W: P: \7 c: s m:=0;7 n" N5 ^+ K4 e& ]$ Q
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
$ M( Z( h7 k9 Y& i% N1 c, T5 P( J- c for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
5 j/ a' a$ F" b* [7 {6 _, `( s3 j if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
% _, v2 d$ @' |) B3 K/ ]( A @._From:=PartsTable[5,i]; - f! d0 X5 m. _: e; m+ F) b6 y
@._To:=PartsTable[6,i];
/ v9 y- G N: t9 V+ Q, f1 R if no=PartsNo+PartsTable[2,i] then
8 q% T& _& n+ F R6 j! p0 i PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
' u1 T: B8 M# R6 ?! W" p" H! [/ T: C$ H& I5 `
end;, s, L5 X" o) O/ C. L4 ?7 R
i:=PartsTable.YDim+1;
: R% I! T$ m$ G) b; B$ e end;& f$ Q( s: @7 R+ c. H
m:=m+PartsTable[2,i];7 W& z% S6 W# Z7 n
next;# s. [" A: {& V6 Y" H) D b; S
8 E) t) I) w4 H2 A3 A& f' t Buf:=str_to_obj(sprint("BF",@._From));2 @. j4 `3 b4 Z+ H6 S8 n- ^% m
@.move(Buf);0 \- [0 O7 Z: P' K9 ~5 L4 B* S
end; |