这个例子昨天正好看了,话说那本书的例子都很不错~0 V+ T4 A+ B! S' X2 @
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。$ N! I# H' ]1 _" I+ ~
is
: x \2 G3 U! j, C3 p( f i,no,m:integer; --定义整型
3 T' y: C1 d% ^5 z6 z Buf:object; --定义object/ d. N# F4 j/ F' U
do$ F( V+ d2 y3 A( [
m:=0;
4 M9 T9 _3 `9 W2 N+ ~ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ n- W% K" t! i, ] for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, a" J3 K* S% T, N if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
1 f( U; Q) e2 n2 I @._From:=PartsTable[5,i]; & T+ L9 `: z. Q+ d
@._To:=PartsTable[6,i];
, L" k8 l2 H1 P3 t& d6 y& A if no=PartsNo+PartsTable[2,i] then & J% C$ n0 s" ?4 S+ Y8 m5 j, ^% R
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
4 ~) |* q; y- P7 ?# G g- I
1 s* `9 X* y1 [ end;
, ]# y, {* e$ g b1 u( J" Z i:=PartsTable.YDim+1;
+ }+ ^1 u! L( u; B. d/ ~ t( ^ end;
' ]. N1 r0 {9 T( T O m:=m+PartsTable[2,i];/ }5 y( u2 e) N0 r( B
next;
2 P8 V$ `- ~" v! m; P
4 f0 J/ [+ r( D9 Y/ B Buf:=str_to_obj(sprint("BF",@._From));
$ B7 o* L5 }) }+ p8 E# u @.move(Buf);, M! i( W, B, g) j. O/ j6 e# T' u1 F7 g
end; |