这个例子昨天正好看了,话说那本书的例子都很不错~( J& I. V/ S0 v" X$ c* R( M
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。: A" P! N- |7 s- h& L
is
! ~# n+ s) u n$ ]6 p i,no,m:integer; --定义整型) {2 ~6 [$ e1 G$ E
Buf:object; --定义object8 t: ?3 g2 c5 u$ Z; D9 _. R" y, e Y
do Q/ ]# @# h; h x
m:=0;
( N# F! `; S- q1 N$ I4 l) Q( z3 T no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)" o9 p/ t& J' \3 k" w9 D+ T
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行) X8 j$ g, m/ q# W; I+ z5 c0 g: S& x
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then - }& x8 O2 o* E( Y7 o0 H
@._From:=PartsTable[5,i]; % W5 n1 m" e" R" t+ [1 t
@._To:=PartsTable[6,i];. E/ F" \/ f0 e8 X' @0 P: x, T+ b
if no=PartsNo+PartsTable[2,i] then
/ N4 o$ I, e3 |' N7 P PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)8 l3 s% i. T" j9 y# e
. d4 T! Y& k3 G end;
3 b' u; w9 y2 ` i:=PartsTable.YDim+1;5 I5 q9 D! X2 i* d$ n9 E
end;) M7 m0 E! {7 }4 w: @) s
m:=m+PartsTable[2,i];
) X- | @; D v) D' U next;
! {6 V. Z& W, x6 H: A1 ] ( ] J4 o: \ _5 e. |# m, T% J2 d
Buf:=str_to_obj(sprint("BF",@._From));
* s; w" o; t; \3 U4 s# g* W3 q @.move(Buf);( [2 H9 c, S/ J* h) p, O
end; |