这个例子昨天正好看了,话说那本书的例子都很不错~7 T* t6 M8 N. D; q5 F }
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。0 L* t W/ a `7 s7 q( }
is7 z: B, u* |3 X6 B
i,no,m:integer; --定义整型8 {" b# |5 d5 d& j/ Q/ n
Buf:object; --定义object$ {/ ? @1 k/ D) \- h8 u
do8 ?" Z5 X1 c: D# U2 R# d& P
m:=0;3 f2 N+ C5 B3 ^5 l9 d) ?
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
4 ~% t% E" y4 B+ J4 R# X for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
8 v7 @( q% z: _5 b% L2 ]1 B3 ~ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
5 V, P* A/ [7 b# n$ \1 \. J1 t+ v @._From:=PartsTable[5,i];
/ p/ y. ~0 q# ^- k8 ^( h @._To:=PartsTable[6,i];
* r% e' a8 N6 m" B: z3 p if no=PartsNo+PartsTable[2,i] then ! t2 P3 L' V# u a! C, x
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)- n7 t; k' a% s2 q+ ^" L4 B) ?
4 T) Q5 ~" R( ^; A( q+ P
end;
) z: a& n; {6 L0 |* B$ M" ^ i:=PartsTable.YDim+1;8 M- b- i' v; q5 {" a' x
end;
# \. U+ t$ w8 ?: l4 K/ z3 B m:=m+PartsTable[2,i];
D- C7 i$ C8 p: a5 d( [- A- H, u next;& B& q o/ a) h+ I! ^+ H* v7 C1 s4 T: L
2 M, Y& }4 K% Y1 Z( Z4 @$ H Buf:=str_to_obj(sprint("BF",@._From));
. O- l) ~8 Z7 n" a- f @.move(Buf);. N9 `- c* ^5 o6 {& {- `" O
end; |