这个例子昨天正好看了,话说那本书的例子都很不错~# I2 C+ A* W3 D- ^" p% F) g
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
9 e2 p& k$ I9 Bis+ }8 s% m2 c& y0 n2 {% a0 C/ r" [
i,no,m:integer; --定义整型4 {5 A+ c1 I# f, d
Buf:object; --定义object
* H5 [; j/ \& K: Ido: ^: t& N4 i# l' j! y# {
m:=0;8 a0 k4 H* T0 o. ~8 c
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
% V" A8 ^6 r: P& r' l for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
- u; U6 p5 Z! f, T if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
6 F2 K2 H3 D6 x% t6 T0 _6 N W$ | @._From:=PartsTable[5,i];
% ~; l+ a, x6 X% g' }9 Q5 Q @._To:=PartsTable[6,i];
1 ^' y3 C0 K3 X W4 D8 D if no=PartsNo+PartsTable[2,i] then
6 m% Q0 x* L( d5 h0 H, ] PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
4 g/ B, s! l- r
v% K4 ^8 ?$ p' O7 ^ end;
' w) B" B) |. p& W2 x* X# _& }" Y$ s i:=PartsTable.YDim+1;
; t$ A) m4 e0 `, v8 s9 t8 D end;
% M, D; _, @! g% d+ Y1 G" |9 U m:=m+PartsTable[2,i];2 c- `: ?4 @6 D, |% w) h
next;
9 t5 o. j) L A
: |4 T4 ]; o5 l3 H Buf:=str_to_obj(sprint("BF",@._From));/ R) S' y: r. Y R7 k. C
@.move(Buf);( F7 b: }/ @( v' x: |, B' [% N; \
end; |