这个例子昨天正好看了,话说那本书的例子都很不错~- o- E7 \# F& o" j+ A8 q% ]: h
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。! @6 Z7 q5 _, {6 [/ s# k
is: F) U2 o7 x5 d3 t5 P
i,no,m:integer; --定义整型
# t$ j+ X: A; `& f4 e( I* r+ N Buf:object; --定义object; J* b) g# J; f) `3 E
do( X0 @0 P# l) H' r
m:=0;
$ `% z0 K7 W/ ]7 Z& V% ` no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
0 Y% X" Q. b. r6 u& G for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行4 b; X0 \4 H- z0 k* ^! S6 O$ Y
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
& {. b7 \- n: Q/ l* c: ]* C" l @._From:=PartsTable[5,i];
/ O" H: p; V' d6 C3 } x @._To:=PartsTable[6,i];
1 P' T7 L7 S% D$ s6 y- b2 @7 q- _& } if no=PartsNo+PartsTable[2,i] then
: J I: ]( [3 N. h& S0 c PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
3 T4 A5 d2 {+ a3 l, w
. j) ?0 V* e3 N% e end;# ]' {; c/ B* Y" D6 ^4 {4 X/ N1 u
i:=PartsTable.YDim+1;5 ^8 F6 c& u" S4 M& B
end;; o8 f7 u) s8 E# G
m:=m+PartsTable[2,i]; o2 u; J. J$ e( d! x
next;+ x$ v6 ^" h$ G: Y, B
5 V) R$ ?0 r: `" w( e, y Buf:=str_to_obj(sprint("BF",@._From));
; |; `/ A' f9 n, A @.move(Buf);
, u* m3 g) X. x; V7 P& D% x& Yend; |