这个例子昨天正好看了,话说那本书的例子都很不错~* u1 Y" U3 d( Z5 l
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。) @. ?7 M3 H8 d5 E
is
) ]+ @1 j/ }( w- y l7 T$ D, ] i,no,m:integer; --定义整型 v5 H' ~- i. q
Buf:object; --定义object3 W! v% s$ a( r" ?( ?) l' D
do
6 c. J, Q2 L3 G0 s m:=0;
; j1 g. D- @% f! U! j1 p# @+ ~ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)* u' D( Z! l$ i) m9 t
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行' S) ^5 v- d5 |
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then % t% X8 l: q" X/ J7 @& o0 w+ W
@._From:=PartsTable[5,i];
8 `$ W& y4 U) U' |7 e. a @._To:=PartsTable[6,i];+ `' W: j' y3 r% m( N9 s8 t: ^
if no=PartsNo+PartsTable[2,i] then
6 x. S- e3 k4 l) ?. C$ } F PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
6 ^( y/ y* M7 z; r; }3 R$ ` H+ z/ C$ h' r. k* T, M6 Y
end;' I3 X: G# ?0 K: R
i:=PartsTable.YDim+1;
) Z) O' o9 k: i4 ^6 ^' A0 x6 H end;
$ ?$ S& {, y, ~ m:=m+PartsTable[2,i];
' w3 H$ U7 b/ i, ?. y9 U" }' X next;, t9 B3 D0 w9 E$ ~9 e% R' F0 W9 Y
9 Z/ g" q( b( o6 O% G& y/ P
Buf:=str_to_obj(sprint("BF",@._From));9 }% q) b, m: ]& O
@.move(Buf);
$ [) o# ]! i2 Fend; |