这个例子昨天正好看了,话说那本书的例子都很不错~) m( j7 G. {' l L* H
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, R; }1 ^. A) y4 T9 J" P" w) Bis. L( e; X! t' @4 S8 ?) j
i,no,m:integer; --定义整型
7 f3 `4 s+ {2 u& J) I: b5 s. ` Buf:object; --定义object
7 u0 U8 v4 v4 r0 g+ ]( t' w5 Wdo
! M; t+ P, z, j6 c m:=0;
, q) Z% C4 A& }2 k% d- N! Q* G no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)4 @+ v$ |# U( y T+ H+ c. Z
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
; C: B8 O8 G# O& D8 u H if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
3 d" X% g9 n$ ~ @._From:=PartsTable[5,i]; # B) \/ B6 ^( L9 ]) z9 R2 a& l
@._To:=PartsTable[6,i];( |6 _& S7 w# f/ O1 ~) k2 W6 O
if no=PartsNo+PartsTable[2,i] then
5 H/ Q4 R5 q. z0 E8 A. G- ?% V& s PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
7 h* u, C; G* V, F- k4 s
2 a+ X) @- Q; d* t m G) s1 W end;6 h- V' i$ x# y' j, k
i:=PartsTable.YDim+1;0 E$ y& d/ `! E! v: A# y
end;" G1 e. s2 R' ^2 S( E& n0 ]
m:=m+PartsTable[2,i];
$ M+ S4 i% Y. v2 n next;0 }$ `' R9 }9 T8 f" \9 V2 u9 a
; W3 o: b; u4 M& Z9 |. p* u1 p
Buf:=str_to_obj(sprint("BF",@._From));) |# l" l! E( X
@.move(Buf);
. D$ A3 c6 G4 o1 O% f# E0 n) wend; |