这个例子昨天正好看了,话说那本书的例子都很不错~
5 F! p- B" k$ @不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 l( I2 [# s" M" u7 @
is
+ b7 Z; O/ N z7 h7 | i,no,m:integer; --定义整型( W2 M; K0 W4 g; I* _% x& G
Buf:object; --定义object
$ @$ R2 V0 T8 J( e6 l+ Kdo
& E" V5 n: T8 h; t! T9 Q5 H9 O" K m:=0;4 {) a- o: \( B& I! R9 [
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 L! O, ~! H0 N& E
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- _9 A. V" D v* s1 ^3 {7 F if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
& L3 D; d- o8 f9 V @._From:=PartsTable[5,i];
1 `8 k( w% s+ x/ z# Z) g7 l U @._To:=PartsTable[6,i];! ?; x& q6 u; U) b2 R" b2 Z) e
if no=PartsNo+PartsTable[2,i] then
( e* N" K# ~& y9 i- i8 v+ {/ B- \0 W PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ o4 h( e9 [, a8 n- v) B0 _1 M
) q* ?# t( r4 y8 r2 ` end;
( t; ^8 _1 l$ P N F% Z i:=PartsTable.YDim+1;2 F3 V: C$ y: u" g
end;
. y1 J2 M& O) D0 z; { m:=m+PartsTable[2,i];
( C/ b$ v3 Y, Z! q+ G* x" S' U9 U next;
) T* Q1 h" }5 |; Q; c, ^- ]! }: e( W
8 A" O m2 Z5 b( @. \3 P Buf:=str_to_obj(sprint("BF",@._From));
) o" k2 p/ c* M: |, S# G5 N @.move(Buf);; ]" E# p7 Q4 t
end; |