这个例子昨天正好看了,话说那本书的例子都很不错~
, a! v2 j/ t8 s# k5 P, m8 l- @不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
! f8 s7 u9 U, a6 T$ K' uis7 W H7 ?( g7 b; f
i,no,m:integer; --定义整型
( \9 Z, p; d" O4 u: m: T% s# c Buf:object; --定义object, S& E# I( o5 T" j
do8 W* F! b3 |% u! }
m:=0;
, P; n: ~' Q3 H* ]/ F! `2 D no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)9 H5 v+ k( T4 P; I% s3 v; H7 _
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
: u! J3 N; Z1 t. K if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
4 a2 l3 y2 m- Y# p) C( \8 R) \ @._From:=PartsTable[5,i];
- [$ X! h5 v( K+ e' g @._To:=PartsTable[6,i];6 G, Y- |" _) T
if no=PartsNo+PartsTable[2,i] then
" n/ }% q8 E4 B: x0 Y* o: N PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) y; n0 ~5 i6 n. q6 Y: p: b7 }* i% @" y: M4 j
end;. I; Q, L4 u ?) l9 D
i:=PartsTable.YDim+1;
2 g* i7 f2 {; c; S: b end;) M* O$ ]# b$ m& @
m:=m+PartsTable[2,i];
3 }# p2 @* o Z2 C# j; O6 e next;
- L2 J. Z. [* g6 a1 N4 t: a, d
, n6 }- o/ H0 b Buf:=str_to_obj(sprint("BF",@._From)); A- y& E4 H/ U3 a1 j
@.move(Buf);
" ~8 P9 y1 ]3 K: Cend; |