这个例子昨天正好看了,话说那本书的例子都很不错~
3 e ], M" a' U; k7 v+ `8 W不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. T3 L L+ q9 a' s" h- e$ fis
- E- C" i4 f7 r+ Q5 k i,no,m:integer; --定义整型
: a5 h: g9 F' j' u2 k3 | Buf:object; --定义object. w8 M4 o- ^, O3 M1 [. J; G
do- c) R6 c- b/ B! m( D
m:=0;
?+ p; u( j0 v4 p% V4 C5 H no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)% I$ Y% M; Q0 }; l
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; X" p: S, i" j2 `% T9 A9 X
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
) V( z/ I/ S/ G, Z5 X6 }4 u @._From:=PartsTable[5,i];
0 F& W# Q# l0 z+ x, X. F% \ @._To:=PartsTable[6,i];
) _* d4 y0 P ^ if no=PartsNo+PartsTable[2,i] then * n6 L9 k5 p2 V4 A* J
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
- u# y7 j0 q3 l; f% e: h N3 W3 m3 u. u9 r& g; B* T
end;9 \8 ?: X8 X D+ H5 I! P
i:=PartsTable.YDim+1;6 H/ O5 n1 \# ~# c U
end;
H% z' y) l! x m:=m+PartsTable[2,i];
6 p' Q7 A' _3 i( j! e& m next;
# r. B. R5 R+ t1 A U) r# D$ q- a # v, i v+ ]% X- _5 N1 i' X8 c
Buf:=str_to_obj(sprint("BF",@._From));2 z3 j) L1 H* }1 ^" t3 n
@.move(Buf);9 d$ k% O! V9 b( C, F, a/ V* g2 }
end; |