这个例子昨天正好看了,话说那本书的例子都很不错~2 {9 \+ I! [: R
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。) Q" Q6 ?* A. u4 n& P
is
. K" d* j" F3 N; x& Y i,no,m:integer; --定义整型6 H# W" Z5 L: w- c/ Y
Buf:object; --定义object' e$ W8 ?3 k' i7 G+ B9 e/ V
do
/ r( K+ h6 W! O2 W m:=0;7 {4 v$ L+ V6 m
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)3 u, b+ [; ^+ r# l7 u
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行4 q$ m& E, @% H# D7 j# X
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then & S5 e: p5 @ g* J4 H, r
@._From:=PartsTable[5,i];
, k% X8 {3 I; ?6 g8 f" r @._To:=PartsTable[6,i];$ X% e- K$ N3 f* G
if no=PartsNo+PartsTable[2,i] then $ D5 A, v3 W# F& n' w( H
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
" v% m1 G5 G# e! |; ~$ m
! y' K0 P5 t0 u* }% P' d m0 J) Q end;& B, |( _' y* p% b) E% t
i:=PartsTable.YDim+1;' u1 q) R) j& [6 R, D6 f
end;( t: V7 l, B1 J0 k
m:=m+PartsTable[2,i];, Q" K# N* p8 [* R- k) N- m' d
next;
# p' ~. s& F, A' G( N3 u8 e ; a& D: j( R6 }" n% J2 X5 F1 `' [
Buf:=str_to_obj(sprint("BF",@._From));
1 u V& ~" x6 w4 _$ Y* s' D8 c @.move(Buf);/ |: K- e% K- ]- R# N
end; |