这个例子昨天正好看了,话说那本书的例子都很不错~( u2 w: P+ T" y6 U6 t" Z
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。5 l* q: z: G8 H. |
is
; e3 |5 a' Q& M4 T$ n' ]1 b i,no,m:integer; --定义整型% A: U4 j6 S$ m6 \
Buf:object; --定义object
U, W" V: J* r' e& bdo# T& u- _6 g7 ?1 X0 n) C
m:=0;
4 I/ M6 Q+ S. ^- d! L. | no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
1 P3 F, ^7 }, \3 F3 I X for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
5 {$ e- M( U T. G8 q, { if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
8 y- }0 G* K7 V* V" C @._From:=PartsTable[5,i]; o+ ^0 w! a& L& j! O x$ R3 }
@._To:=PartsTable[6,i];& f9 h4 U0 ~: U- u; \) B# ]' J
if no=PartsNo+PartsTable[2,i] then
* V- J& d: q# @7 |6 |/ L4 [ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
; `# M8 N0 }1 ~0 [2 @9 R' w7 Q, ` v6 W
end;
& c( l( [+ H6 V) u, m5 M i:=PartsTable.YDim+1;: J- |( j2 G' p0 o- T# v
end;" T2 a g; \+ Y3 u: p, ]+ Z
m:=m+PartsTable[2,i];
8 g. h0 W& s5 _' b# C W next;
) Z2 W0 H4 M6 L$ N2 Y" c! K ' ?4 n, } J* S. _% I) e/ _
Buf:=str_to_obj(sprint("BF",@._From));
; X5 D* p, P, M6 z( I) u" a0 q ] @.move(Buf);, @) W! L, {9 D& ^
end; |