这个例子昨天正好看了,话说那本书的例子都很不错~4 P% ~; e9 d9 r7 Q0 R" \1 J! y1 J
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
' X% S/ v4 i0 L6 ^is5 `+ M$ U7 {+ }( C
i,no,m:integer; --定义整型9 R. n: B' a- u v" I
Buf:object; --定义object0 M2 X6 E" c9 e2 |7 B, r9 \/ Q, p
do
5 ^6 ?- e" \3 |# T! ~ m:=0;
8 R4 ]/ ?2 v, w2 _2 O$ _$ a no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 p4 n) M+ c) x$ l/ O" J# L
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行) f; d/ @8 g4 m) H8 @7 D
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
; \4 ]3 { R6 v& Q- q6 o4 _ @._From:=PartsTable[5,i]; ; W' K5 |5 k# q1 F( q: o% J3 X, I
@._To:=PartsTable[6,i];7 M3 ]! U1 W; U' Z% W! ^
if no=PartsNo+PartsTable[2,i] then
! w x/ j+ d9 n PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
2 p A$ ^9 O# n; ]9 p, ]4 z+ k' N' V4 j- K: Y
end;
1 j) x$ o4 E) s2 H i:=PartsTable.YDim+1;
, b% Y& D- T4 k; Y$ N end;
- R- r# _6 }4 W1 c. C# }1 T m:=m+PartsTable[2,i];8 g6 j; W6 S. G7 z, ?: a! B% @
next;/ x) `6 L& m* a- n& K6 R6 C
3 `8 z/ u+ N0 Q) L5 c& o) K8 T' ~; t7 ] Buf:=str_to_obj(sprint("BF",@._From));% D5 @0 V0 w* f! T; @% {
@.move(Buf);
% d' f& o! O& ]% R/ E O9 t0 oend; |