这个例子昨天正好看了,话说那本书的例子都很不错~& o8 ^! X/ I' [# c
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 L% n4 r {/ m) x: A+ iis
, W- Q/ x, M0 @4 _ i,no,m:integer; --定义整型
0 D6 k3 X. K G( w6 Z, f9 N9 m Buf:object; --定义object$ Z/ H8 l: J, o3 b/ |' F' s
do
$ y7 v+ e3 A" S$ b# F A. V m:=0;; ]! x+ ^5 @- ~7 D" b% [( M0 ^" h* I
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 \, X6 q' E" H! { for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) a4 D) J$ `. @* a% k if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
5 }' C# _8 H% i @._From:=PartsTable[5,i];
2 ?& ]7 ^& _5 r% C1 u @._To:=PartsTable[6,i];
3 p3 H( b& X8 h8 d7 ^# H* N if no=PartsNo+PartsTable[2,i] then 9 P% h: s3 a: G x3 L( E. n! z
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
* h$ P2 m% F% Z/ P% [$ _+ R! k3 o
( G; k, e( C- O: q0 b end;
8 s3 i9 ?/ c% g i:=PartsTable.YDim+1;
: y1 J/ ~! L" q$ V2 ~; r; I end;
5 b' a) X5 U6 L$ D5 Y! c" m0 z, x/ z m:=m+PartsTable[2,i];
5 U( Z% Y, \( N" R( v: z) f5 G next;
% v3 f' L' W, p0 S+ X! U( f
/ P! O, V9 K) c" w4 l, {( P Buf:=str_to_obj(sprint("BF",@._From));4 _7 c+ I; O+ V1 e; y. [$ R5 D
@.move(Buf);
8 d1 a7 o2 l. Iend; |