这个例子昨天正好看了,话说那本书的例子都很不错~! F; x+ q! c, s% P$ L: \9 m
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
% g' G- ~# Z" j- q! x, [7 |3 r# m+ Ois/ t3 W5 i9 N% j0 c l4 y5 h3 B0 G
i,no,m:integer; --定义整型" a( m/ c, ]5 C( j5 a* z
Buf:object; --定义object- Z% ]) ]0 b/ O4 }* h6 J- Y) }
do: h/ ~# h5 |+ f* D) h- o
m:=0;' I! _8 h* |: y+ O' @
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
2 K$ x* }. C( u7 c( H' } for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
; ]- m) e, c, | if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
3 [1 U7 z+ `+ s' D @._From:=PartsTable[5,i];
" H7 M* _5 x5 Y7 q. C _" n! z @._To:=PartsTable[6,i];
]& y8 [2 o, l1 b( }0 q if no=PartsNo+PartsTable[2,i] then + J7 Y3 m- ]; B% ]. J, c6 s
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 B0 v* N' w2 x& f
u7 ]2 n5 }* }' G( a7 ^! W U end;6 q: ?4 D" z# z# P. X
i:=PartsTable.YDim+1;; F4 E7 A/ m+ D, H ^
end;3 k+ H7 m$ y3 I( K1 J
m:=m+PartsTable[2,i];
. v/ K+ J& R' D5 `5 W next;* n: S, v" o/ |& L/ J% p
/ Q: C T r% M; e( m$ g) b5 U Buf:=str_to_obj(sprint("BF",@._From));$ Y1 Q' Y0 [0 j3 h6 Q; E# Q
@.move(Buf);1 p/ g0 ^2 P( \ p' u W% ]9 O
end; |