这个例子昨天正好看了,话说那本书的例子都很不错~/ `+ c( z4 \: d1 |
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
' h. b5 r; T9 [; n/ f8 v( Yis- }+ P5 X9 _+ j. |3 F2 q
i,no,m:integer; --定义整型
, p6 S' @- B {& A Buf:object; --定义object, J! d- N* I3 W
do c4 O K2 |2 s- V. _( [
m:=0;
7 }. R+ \' V# W) E. O5 i2 Z no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)% g# V: k* J. D. b3 Q1 `
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ Z7 ~6 c& g6 E* @+ Y3 S: x* f4 u. R if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 6 `/ n6 Y/ E# ^9 c3 b
@._From:=PartsTable[5,i]; $ B" P# T: z) k$ V$ h0 K
@._To:=PartsTable[6,i];, m* U' `5 R, }+ H7 t
if no=PartsNo+PartsTable[2,i] then
) q9 j x, q( ^! z' Z: v, Y! d PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 D9 p: j O( c
4 J# X' H+ T# K4 T end;
4 |" E# Y& h& H* j- q, r i:=PartsTable.YDim+1;
1 p: n) Y0 s3 c c! h end;
) g* R2 [# v* C% o m:=m+PartsTable[2,i];
c) U# s- a/ }4 c' v next;7 n& }7 h* v8 I. @1 q3 u' `
5 H- A$ o# A. o2 q' r( W; ]
Buf:=str_to_obj(sprint("BF",@._From));
% J' u; i% i, s8 e8 } @.move(Buf);
. \! S/ @! G) F8 i4 y) k8 n0 Kend; |