这个例子昨天正好看了,话说那本书的例子都很不错~% n9 E! S) b5 ]. J) T4 }5 f
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
$ O: \: a! [# jis+ W" R% L; n' Z b4 W( w+ P
i,no,m:integer; --定义整型
) g2 }, B" d6 F! _1 \8 [ A Buf:object; --定义object+ b- x/ u8 W: N4 r6 X
do# t( T& y/ ~5 S, `2 d
m:=0;" M/ t* o3 p2 O# N0 O# J( N
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)( `$ ^$ K- y3 Q% A H1 F
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
& q" h0 r- S8 l' Y) k8 B: i if PartsNo=m and no<=PartsNo+PartsTable[2,i] then " r8 R0 a" S! x1 Y
@._From:=PartsTable[5,i]; , I, `. W8 |! e0 v( {+ I
@._To:=PartsTable[6,i];3 O5 A( A, B( ?4 u/ x: p
if no=PartsNo+PartsTable[2,i] then 8 x% U& [ O( d' w4 i
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)* M' [' _( Q3 r" u
" G: ~2 a0 M" K0 ~
end;& W0 y. T* m7 P6 Q. C" z/ a3 s
i:=PartsTable.YDim+1;
) }+ o9 I* C! f5 g+ \1 m& N end;+ K3 S! }: H6 c; ~
m:=m+PartsTable[2,i];
9 i" c# [1 }0 a2 U% ^ next;: g4 k2 V+ T1 @8 Q
?6 k4 N! }( o" Z: B7 a& G: _ Buf:=str_to_obj(sprint("BF",@._From));
- |. ~* \& y$ M @.move(Buf);
) }& E' D3 H# }7 b$ p4 X3 kend; |