这个例子昨天正好看了,话说那本书的例子都很不错~
7 m: e1 C4 O+ ^9 Z/ A- k- {% b4 k不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, }* x: d3 `& q+ Pis E$ X! K" c0 J) [- v6 n$ }, u
i,no,m:integer; --定义整型8 C/ S# W- C8 l& D0 w1 H8 r+ A
Buf:object; --定义object# ~4 X2 A5 U# t9 S
do
4 I( B; |+ [7 b J( s7 ?, Q! S m:=0;8 G( ^* H/ u- I2 e/ K
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
0 K& m; j6 e& ^ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; z& v1 x$ m$ C: j1 w: z0 w9 T
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 7 [, b4 V1 ~' M$ V0 ^% j
@._From:=PartsTable[5,i]; ) O8 ~3 R% x2 T. i% J' b
@._To:=PartsTable[6,i];& ]% H" a0 b1 I2 n& p
if no=PartsNo+PartsTable[2,i] then
. i1 A! d* e* o PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)% p2 |- G% r8 x2 i3 o6 N3 L9 ?
- e O& z& }2 O9 Q% Y' A! N9 v' Y( ~0 a
end;5 R4 o; k5 t$ C; A
i:=PartsTable.YDim+1;' b1 ?/ C( G* J- y
end;7 b1 d+ d! Z/ u' H5 N3 @6 ~
m:=m+PartsTable[2,i];
/ W) q m4 h7 A next;
# C- T% L6 h. ^, B) s; z# D
9 m5 t/ Q4 ]) N% C$ u" F Buf:=str_to_obj(sprint("BF",@._From));
2 W, n- o D* r( C/ D/ p4 W @.move(Buf);* c4 ~ L& P$ w3 f" G( X
end; |