这个例子昨天正好看了,话说那本书的例子都很不错~
% z# g1 c7 H' b不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 j& y5 J Y+ ~; A% r& Jis2 W1 g. W3 K4 k, b9 ~
i,no,m:integer; --定义整型5 m% k) n: @; \7 b4 n5 O8 O; l
Buf:object; --定义object
6 i, n7 l7 T* m/ [do) |0 k; ?$ `, s
m:=0;
' C* Y7 ~* Z8 r. Y+ v3 L% `# `* y no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
' m( k/ \) @2 ]9 K. v! W+ { for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
9 |* ]3 b! v* B+ {3 p* r4 p if PartsNo=m and no<=PartsNo+PartsTable[2,i] then . i y, ~8 I& D% z7 q
@._From:=PartsTable[5,i]; 9 s* f* d* V* N+ {% z( G
@._To:=PartsTable[6,i];- E5 X8 B$ z' e- i/ @2 g' ]
if no=PartsNo+PartsTable[2,i] then
; d" Y: Q: Y# y1 X: b PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
! r% c6 h; [+ B; y* @- l1 Q# L
* h4 k4 x m1 d) G+ V end;
0 m" O& M' h; j& e" ^# f4 M5 @" Y i:=PartsTable.YDim+1;, P! @3 V- ^# o8 ^& f0 p% E% D: b
end;: m5 Q, h: j( n: }0 M
m:=m+PartsTable[2,i];& Y' }3 b6 G# ^+ ]. `
next;
( N( g' ]* F" x* F6 N
. h9 R V8 `+ |3 o Buf:=str_to_obj(sprint("BF",@._From));5 Q9 x* ?$ z" y- J: i& G
@.move(Buf);8 @3 }+ Z4 y4 g& {& d& p
end; |