这个例子昨天正好看了,话说那本书的例子都很不错~: `" |5 ~" S: d. W+ _1 Y
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
9 I' m, N- [% ~4 S3 ]is
4 Z# p0 `9 |( Y0 w l; D' t8 _" I i,no,m:integer; --定义整型
4 n( ]$ I4 Y& g' A1 Z5 w. G4 F3 R' d Buf:object; --定义object: Z. ]; y9 g& l9 R7 \" Y7 b
do
' y7 V; C+ g' @6 Q, @- O3 J: p* e7 _ m:=0;
, A/ ?2 g4 x# n& I& z0 j; H5 h/ k0 {8 C no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)( ~ {/ @* \ |6 ?
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行6 ~7 X4 p2 U4 H- A$ ~ f
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
& F2 |3 u4 a2 ~2 I3 e2 T1 W- O @._From:=PartsTable[5,i];
0 ]: M( b: G! S$ i+ C @._To:=PartsTable[6,i];
+ G8 M9 [' ]/ v) ?! Q5 f6 N5 H if no=PartsNo+PartsTable[2,i] then , ^* _% k) t3 [; U
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: |" i( ~& }3 r/ n
0 \& S9 S, N& e' a- R s end;8 D1 n+ I& V4 h0 @
i:=PartsTable.YDim+1;
" V) j, Q& W Y# ~7 y$ s9 s2 A end;8 Q( D! r {1 Q W0 ]! l6 {; J3 V8 M
m:=m+PartsTable[2,i];
+ }% t! q3 t3 z6 D+ ~9 G next;
R0 U* g2 F$ G6 p$ f; H+ H
. |9 l. [) E. c1 K! n1 ? Buf:=str_to_obj(sprint("BF",@._From));) k9 @6 Q) G+ p: }/ j) l
@.move(Buf);
: I z M3 g5 o% C% gend; |