这个例子昨天正好看了,话说那本书的例子都很不错~
, P# o7 Y1 H5 N5 j8 a" y1 k; F不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
' }# H! x0 U0 c! ?+ D+ w# e( Cis
0 {3 F' N& h# R( y9 K0 d i,no,m:integer; --定义整型
* l' k, N' S( C Buf:object; --定义object% l5 F6 y/ A4 L$ q! R% [3 o
do
2 h' l9 s% E& r' Y* M m:=0;
9 ~) i& K4 @$ G, w. b$ L0 ` no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ N! i z5 _) p" L7 t g7 r2 j for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
3 B* U, l# P7 c8 _! \6 { if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
, P, h1 u4 b; @* U @._From:=PartsTable[5,i]; % ]. {5 f/ E; x: t9 o k: h! v
@._To:=PartsTable[6,i];
9 f# x2 H* @1 p if no=PartsNo+PartsTable[2,i] then
5 v g; | g& |. L' j% } PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 {0 J2 j0 V3 u0 _0 Y$ v
6 _6 I2 k0 x H
end;1 K/ x8 ]" b- d# Q
i:=PartsTable.YDim+1;1 ~. ^! g- M4 e) H& o, o% C
end;
. p+ r& t7 ~: C m:=m+PartsTable[2,i];! d1 V2 s! M2 C4 \2 G3 u* y! P$ ]: L
next;
( l/ n( S5 P' Y4 D, X# |; s4 [2 ^0 R
6 T8 ?+ `5 a6 P7 T' m2 h- @$ Y Buf:=str_to_obj(sprint("BF",@._From));* b: }% k v- Y a8 g; Z8 n
@.move(Buf);
( Z0 L& e% ^1 O4 o/ x- r9 c( @end; |