这个例子昨天正好看了,话说那本书的例子都很不错~2 f& E9 G1 t2 _7 l
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。! l( h* C( O* J- @
is
* `! v/ J, F6 B- o; N4 z i,no,m:integer; --定义整型, P E+ r' r4 M- }2 h6 y" O: ^! F
Buf:object; --定义object% i* T D4 U! ~, n
do
! [- f7 j" A; u4 `* R8 ~% O# I" w m:=0;& Q% T& H. \0 r1 S: m9 _* }5 G
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外); m) S7 j7 a8 p* Z) u5 p' t6 ~
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
L* d9 Y, W [5 f& o! E, f if PartsNo=m and no<=PartsNo+PartsTable[2,i] then . W: g) P, z8 @& }5 F, M+ |5 U
@._From:=PartsTable[5,i];
# }' ^, s5 ^+ v Q6 j( O @._To:=PartsTable[6,i];
8 i3 ^, f, H0 c% f0 ? if no=PartsNo+PartsTable[2,i] then
' x. x m% u1 m- }* N1 }2 S PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
" ~% d) j1 N6 D( ]
9 L \% d @. h, z2 w5 e end;( z3 \" p- n3 v" ~
i:=PartsTable.YDim+1;
5 o5 z3 L- t' U* F end;. Z& y* k) V, z7 t. R. o
m:=m+PartsTable[2,i];8 o7 w. o! h8 p( U8 d1 U- o6 I
next;
; E$ q3 X! o6 N3 o / |6 M, L2 @0 W8 ?* u! Q# b* k1 R
Buf:=str_to_obj(sprint("BF",@._From));8 o: k* m7 M0 h0 V* I4 R4 ^
@.move(Buf);
) ]% i+ _6 R6 z _5 kend; |