这个例子昨天正好看了,话说那本书的例子都很不错~
4 p% X! y1 i7 N; Y不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
/ d$ z) E3 d& p# I3 Mis
4 Q7 _. R) F. o( P$ O P; ~ i,no,m:integer; --定义整型. y( W8 r4 I, e% D4 U) A6 K: j& @
Buf:object; --定义object
/ n1 H' @, l2 @) u" edo
% v+ k- V3 O/ Z' j* M! g4 l m:=0;% q/ w: s" I9 ^" o
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ _( m1 N7 a k
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
. w* y. D3 h2 m* H* M+ D9 p' j if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# p* W" K/ h- s @._From:=PartsTable[5,i]; , n/ \! F/ |7 o( Q
@._To:=PartsTable[6,i];
+ O2 V/ d: }/ d if no=PartsNo+PartsTable[2,i] then
; f0 j7 ]( U/ I. ]/ ? PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 L: p" e* u! \) U5 _0 Y7 u6 a, s1 ]6 a+ |; }; Q
end;- l2 z C( J! ~9 c
i:=PartsTable.YDim+1;9 y. _/ r; E0 Y
end;( R& y5 ~2 I$ l, W1 \' s
m:=m+PartsTable[2,i];
H2 e* g8 ]9 X; R% g' m+ x9 b& d next;1 y! r3 |. G. v/ q
6 F/ G4 ~5 H9 |" p
Buf:=str_to_obj(sprint("BF",@._From));
) e- ?; ?, z& y0 p) a: x: W @.move(Buf);
9 {2 I( t7 q) q6 K/ Y. ~( _end; |