这个例子昨天正好看了,话说那本书的例子都很不错~" `; b- O7 K) T/ Q; m0 C! j
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。- Q( [9 y. g, ~( Z
is
h( D- ~, x) [, a. L, s4 x; X( t, B i,no,m:integer; --定义整型
% p' I5 H8 ?$ q0 u Buf:object; --定义object! t" O6 s. Z" _. A7 F2 \( {' h9 H# V
do( A# j7 F: v: I
m:=0;. V% V8 h3 ]( w' w
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
( E% n/ r x! i4 h+ H/ o for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行* {1 _/ u. P+ m& z5 d6 R
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then " K* e% _ ^. \1 Y; w
@._From:=PartsTable[5,i]; ) _- [# H0 g7 K' m8 h* `( j) e
@._To:=PartsTable[6,i];
+ c8 G, S" |% J1 r if no=PartsNo+PartsTable[2,i] then 3 [4 W% W! M+ y, G
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
' }$ a8 |8 S9 i d
) M: R& n( ?. a end;
1 M4 R0 E$ P, N4 B- K i:=PartsTable.YDim+1;) b& |7 F/ X7 z. x( }4 t
end;* [8 J9 l+ }3 L5 }% C
m:=m+PartsTable[2,i];3 ~# n) R% a# i e$ j
next;8 S" c; X# d' M8 ~7 u
9 M" R3 P: l, `& M7 Y
Buf:=str_to_obj(sprint("BF",@._From)); b- c2 n8 z' J, T
@.move(Buf);
8 y' J- V- [( u6 Iend; |