这个例子昨天正好看了,话说那本书的例子都很不错~3 d* t3 f: W2 b
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。- N# z3 d2 u4 G% G3 A. [
is( C* m5 V, l4 ?3 n, ^
i,no,m:integer; --定义整型
7 ~6 \6 d& d& y$ x) H& H* n Buf:object; --定义object7 f- T. n3 u! |! m$ G1 h
do
. V1 P0 h4 X; T) Q1 { m:=0;
6 y' v. v: N* k4 Q, j( l% t- Q7 f- S no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
$ }/ S6 W/ H q for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, F, H3 m! q3 Z! W2 B/ m. k; a if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( d7 t6 p2 w; Q( H% B8 D
@._From:=PartsTable[5,i];
% T- g& }9 i$ L) k' k9 k @._To:=PartsTable[6,i];
. e: \2 W# e5 m5 o3 @ if no=PartsNo+PartsTable[2,i] then
# m [' e2 o$ n9 D5 W' d PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
% A8 p$ K& ~! d( E" f9 I+ f5 m' F8 @- P
end;
2 U+ a% X( s9 T0 D, U2 y2 } i:=PartsTable.YDim+1;
9 |! g7 l& L' ^! v2 v& r8 m end;: o- x6 T$ M* D4 u5 H
m:=m+PartsTable[2,i];
6 C; t2 w% f1 X \1 ] next;, f) U, D7 u1 C* n: b* o$ r" L
; A/ E& x! B+ z( @. j- A l ]6 L
Buf:=str_to_obj(sprint("BF",@._From));
8 R) V1 i1 Z8 F) }6 N @.move(Buf);
; V& A$ \' b$ s5 tend; |