这个例子昨天正好看了,话说那本书的例子都很不错~
' @+ Y* ~7 o- l! J1 P' M不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
% @. I6 A( `7 ]& G- pis
8 @: Z i9 i @' u i,no,m:integer; --定义整型
9 [* Y, B$ s/ { h( a) S Buf:object; --定义object
$ [& D/ W5 p1 z. ]1 p$ mdo
) Q0 L# c2 ?7 x* Q m:=0;
4 ]+ `3 |1 G8 t! b b7 S0 c2 ` no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
0 J I E0 y/ G8 e( b8 m2 P for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行4 }6 I ?4 z Y. i% x
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then . T l( k3 _- V% F* {) z6 j6 A
@._From:=PartsTable[5,i];
: h* Z6 J- U+ z- G* ]- ?3 X @._To:=PartsTable[6,i];
3 z2 O: a* S( B if no=PartsNo+PartsTable[2,i] then 3 K- Z }! s0 y) d6 X7 D
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)( o) v* g2 M; |5 y4 i
# i8 G( L5 ~' x# y2 ]0 | end;
) s Y, X, d9 O, N i:=PartsTable.YDim+1;
& l, h, v! F1 `5 N9 N- M/ @/ ~$ N$ O end;4 G, P4 l9 G7 Y- f S
m:=m+PartsTable[2,i];! b4 y! v8 ~) A& x4 A- D* c
next;
+ P. p* n/ u; ]- Z: `! O% J / e7 L8 M+ U+ B, `! }) ^
Buf:=str_to_obj(sprint("BF",@._From));
3 d7 x. c1 w4 v, Y( t! ^! E, I# ^ @.move(Buf); c& [7 y1 k& R$ b$ l
end; |