这个例子昨天正好看了,话说那本书的例子都很不错~
- E. T# X+ n$ h: l% c+ a, W. ]不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。7 U# Z. {+ E4 i& p
is
4 |3 s. x# V; N# } @* @( Y, | i,no,m:integer; --定义整型3 G y) U, R; |/ P l/ f
Buf:object; --定义object
7 c- F" Y; N8 g( a* G( X& G% B: `do
2 {! a9 l6 h- o. E m:=0;
3 A. m: E$ `9 s8 ~6 N no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
% m4 w0 z. P, w* U+ L- V for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行! r3 J6 q$ [ d6 z
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then : g% V0 Q! D9 D) J
@._From:=PartsTable[5,i];
( y' ~0 G" O8 i/ g& g @._To:=PartsTable[6,i];
u2 j" ~; ^0 {( _, l if no=PartsNo+PartsTable[2,i] then
/ L" j6 B4 c/ p3 S PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
, Y& s5 ?/ i v7 G" n% z9 ^
0 H3 t7 T) n1 ]" g end;
7 m; u( l2 k0 z- E% n: I, t( T i:=PartsTable.YDim+1;/ P2 ^6 H( n6 P, O- O2 W
end;+ ?7 b' @1 h$ o; F. J. e& C* E
m:=m+PartsTable[2,i];1 j# I% k7 _$ }) M
next;
; ~+ Z! K* u* s8 V( h
: }& o' H2 ]/ |0 J$ b8 n% R" O Buf:=str_to_obj(sprint("BF",@._From));+ y0 Z- ~ k0 }9 Q
@.move(Buf);: \0 x5 ?( T+ Z5 q
end; |