这个例子昨天正好看了,话说那本书的例子都很不错~
) p9 ~5 ^0 b: Y7 m不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
S5 U7 w; y, L0 lis
# U# w/ \. S i* z i,no,m:integer; --定义整型
; `. G: H( Z- H Buf:object; --定义object0 P& t q/ L: {$ ?, J
do
?! C- E+ x* C) u m:=0;% }% _; T9 @# V5 g: O) t- B7 Q% T
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)% L# Z d6 r$ t( a% G
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, N* [) c; O8 c( }, ?: x& }: y if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
' L/ Y+ P5 T/ t# @! \3 s4 @ @._From:=PartsTable[5,i]; ( T, r+ k' z; ~" |% \- p4 ]
@._To:=PartsTable[6,i];; W8 _/ l0 O1 n+ c% G' W
if no=PartsNo+PartsTable[2,i] then : m' _3 m6 |* s D3 ?) D
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
% f5 Y/ T; ^1 v) D" g
" [* ~" r- N9 W! x% w6 w) Z: F9 Q5 J end;
2 s0 i, t/ O" a$ J i:=PartsTable.YDim+1;
: Q# Z' m6 j% y6 D( a- E+ M end;4 \+ g+ Z# t* |- V4 j3 Q; ~
m:=m+PartsTable[2,i];; ^/ F4 Z, I2 w% \6 t. T {
next;' _/ A* z9 U0 H2 A; P* w
% U2 z" I3 f/ A, r
Buf:=str_to_obj(sprint("BF",@._From));/ m9 c, |% k. Y: d1 E/ [- m+ G8 }
@.move(Buf);
( k: n6 K. U. g7 ]1 {5 fend; |