这个例子昨天正好看了,话说那本书的例子都很不错~
g8 w' K8 r3 `1 v不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。% \9 d3 n0 F, E7 P( c
is
. r) Q: A9 F' s' U i,no,m:integer; --定义整型
. f1 f' t6 t x2 U Buf:object; --定义object
6 s" |- X3 f9 m* }2 v- t/ E$ Vdo
0 O% @- W I6 y3 I1 w* D: G$ Q m:=0;
# \1 D' c: s. z/ G no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)/ c9 ~. [9 h4 p; j, _4 D
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行1 z0 O+ v: S: n" A- R
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then : D1 H4 F A# M
@._From:=PartsTable[5,i]; 1 R) ?$ ?. u% Z7 a) L; l
@._To:=PartsTable[6,i];
: l/ W6 \5 P% I) d' ] if no=PartsNo+PartsTable[2,i] then
+ X3 R4 Z9 q% O' G) _ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 t( {4 }( k$ V5 m! x
; b/ l: C! Y( T4 r) A% w+ } end;7 F" Q) |! |) l" ]
i:=PartsTable.YDim+1;2 m; [' m# i) J2 ^4 {
end;
0 n! t, R: W8 v6 Y1 { m:=m+PartsTable[2,i];( n6 }' Y- r, f8 ~ {$ Z
next;
) p/ m0 h; X6 L6 [( Y ; Y0 L' G" r, U$ A
Buf:=str_to_obj(sprint("BF",@._From));2 d! T3 ~* H' y5 f# O% q- @
@.move(Buf);
) F% ?) X! G- S7 p5 h1 Wend; |