这个例子昨天正好看了,话说那本书的例子都很不错~, k7 O5 T5 q5 c5 ?: E) I, D2 R
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
( y: T$ K1 k! Y- I: @. Lis
7 b7 T, K8 R. A% Y( z @8 Q$ e i,no,m:integer; --定义整型- R" p4 i+ p( q O4 N3 F9 }- t
Buf:object; --定义object; N/ V* s7 q) a0 V# }8 k
do
. {- Y8 a3 D+ Y+ H m:=0;
/ A6 W1 H0 t0 l* k8 b; P7 f* U3 R no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)- E9 p: Q: ]+ c* C9 I' w. [
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, G: V Z7 F. }5 w [& R if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 1 n* W: i) E! d' P( J# y
@._From:=PartsTable[5,i];
9 F2 A0 \& c: j" T0 h @._To:=PartsTable[6,i];
' b D- t5 A; ^+ Q if no=PartsNo+PartsTable[2,i] then
8 B/ |6 ^: T4 ~; ~! j( J6 e7 u7 W& { PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
$ }. I5 t; F% S
/ d0 G, I/ f7 J# `; I8 R end;: c7 C2 j3 E/ C q$ x
i:=PartsTable.YDim+1;
* [9 N( o. _' S4 j: x: `4 \ end;6 h8 x8 l6 ~$ w3 H7 K% h
m:=m+PartsTable[2,i];# B' H! h3 U1 k
next;
: l, H$ }4 K+ O) ~3 Q, D3 E7 H , X2 s: U, c( a
Buf:=str_to_obj(sprint("BF",@._From));6 ?; l. w- g5 x7 W9 ~
@.move(Buf);
. L6 U' J( C! h1 Fend; |