这个例子昨天正好看了,话说那本书的例子都很不错~% h; l$ i5 K5 H
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。# _; K+ y' i4 L# d7 }( j. q# w
is
. Y& A, p8 Y8 n7 T7 o i,no,m:integer; --定义整型
& c* c1 Z+ I, ~" O( Z Buf:object; --定义object- t$ j6 n$ p! D- |4 z* M3 g/ y
do9 }0 _# f/ T3 R: d
m:=0;8 g7 h* S- S, c9 y4 a% W* X
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
P) A2 u4 d1 X2 @" E3 M- d1 f0 |/ k for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ p% a9 e5 O& R* Z) c
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then , c$ s5 {! z) [' v, D) S
@._From:=PartsTable[5,i]; 0 Z2 P! v9 u2 p! a
@._To:=PartsTable[6,i];9 M ~5 \. P. [4 W; Y
if no=PartsNo+PartsTable[2,i] then 6 Q' Q t5 E% a
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)0 R$ O' r# Y0 z9 ?' h( [) z$ x
7 H8 D" u! k. c' o- x5 L- d
end;
# M% n$ t% R0 q, W: F i:=PartsTable.YDim+1;
( s! {: y+ ~1 q2 M end;9 ^7 h. B5 Y9 w) u+ x: L' ?# v, k
m:=m+PartsTable[2,i];! X/ F7 O, Y* ]+ U
next;
1 h# H4 m% Z W( ]$ u* q) l2 \ , D& Q' m/ Q. @4 Y8 j8 g& O
Buf:=str_to_obj(sprint("BF",@._From));/ u$ T+ J0 J$ Z* O& u0 m
@.move(Buf);
& b6 w4 z8 t) Cend; |