这个例子昨天正好看了,话说那本书的例子都很不错~
7 \ w$ s& ]/ J" \) L4 \) `$ y; @( q不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 y! ^! M/ G! m- { {. e4 D
is4 `" ~8 Q1 I3 L! K1 D
i,no,m:integer; --定义整型9 \8 L+ B1 q4 V
Buf:object; --定义object
; y+ W' G+ L0 K9 A6 W# e2 ?do
1 D+ \' M, o( F# W$ D m:=0;8 d. h. q( Z- e x/ u
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)1 [/ X' @; {$ t# O
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ s+ G2 ] e/ F. N1 H! L$ a5 i/ C
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
2 M) _: X. z( V; S$ Z! t @._From:=PartsTable[5,i];
/ t7 g% p* D3 W% T @._To:=PartsTable[6,i];
4 j4 ~6 n' Z. G if no=PartsNo+PartsTable[2,i] then
9 {* B3 S0 r" b* M) `, [ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: g; c9 I/ _# u- O. K5 w) P/ [* }. k, ?" W1 H/ T, g
end;
" [ a; v0 f* w+ \ i:=PartsTable.YDim+1;
% T5 a1 ? x) l) p' l6 u end;$ T! p% X$ \& J2 s9 d/ w
m:=m+PartsTable[2,i];1 m, r4 O* L( l2 b0 S& V. t2 Q
next;
1 p, e1 P9 K/ z( [ # Z/ P8 M1 I4 L7 ~- o x* Y. L
Buf:=str_to_obj(sprint("BF",@._From));
, S5 V. x& s2 ]: I) H) U8 u @.move(Buf);* f+ {4 Q1 `: [/ |% e; |1 r* X
end; |