这个例子昨天正好看了,话说那本书的例子都很不错~& J' J. j9 d/ q( q
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, g. t3 w7 T8 [9 f+ y
is ^% Q9 V2 N/ r' p) Y* H
i,no,m:integer; --定义整型) t1 Z7 q6 y2 O
Buf:object; --定义object! X* C/ `4 ]% R7 }* c& `! H7 G
do/ F% n) c7 R% d, F
m:=0;+ f* E! ?, w/ u. o7 b* z# U* ~" {( _
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)! ~; e# e! C! k7 P
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
: F, }5 r* Q( N# T if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
' @: U/ B" ?1 f& [0 H. M @._From:=PartsTable[5,i];
7 z( P2 }6 L0 H2 P& b @._To:=PartsTable[6,i];0 u) h2 a/ ?8 t8 r% ~; R
if no=PartsNo+PartsTable[2,i] then
+ i% }* F6 S$ B2 ~) j PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: c3 P8 j% ?( U' h0 C" a8 O; `7 p8 v
end;: }1 J! p; W# s% _1 M
i:=PartsTable.YDim+1;
# y: M1 ]% n! }( ~, h( k w( P end;
+ p" M( T6 Q# G m:=m+PartsTable[2,i];4 j0 e& P( o! w) _3 W
next;+ _2 ?5 z7 c+ b8 f( R6 F8 h# T
& w v8 x7 x4 `3 l2 T Buf:=str_to_obj(sprint("BF",@._From));
4 m- e2 s! T5 |- r @.move(Buf);
, H3 i, E7 w# J* \6 ]' a. n% `9 i! [end; |