这个例子昨天正好看了,话说那本书的例子都很不错~* h0 P: l$ J/ o7 D5 C$ e
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
" S7 n! d0 U2 k3 l" C' w! G: j7 `is! T4 G+ ]+ u" z, T1 L) L
i,no,m:integer; --定义整型3 d% O7 R, Q! C; |( {' x
Buf:object; --定义object1 y; y# j1 _1 X8 p* R
do
: v, Z; u/ @3 l6 S+ u6 ]8 h% r! Z m:=0;# l8 _/ |4 ] g) M& R# x/ S2 [/ |
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)1 [2 C5 b4 w2 ~# z' a
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行) |5 Q6 S% m* a4 @- f- B1 o9 Q
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 0 H. ^% X0 B. U$ F9 F: M) I# n% j
@._From:=PartsTable[5,i];
. t) I% X+ [( E, ? @._To:=PartsTable[6,i];! g+ e$ q3 w4 I N' i# i: R& b' q, P
if no=PartsNo+PartsTable[2,i] then * k( Q. }9 y0 B3 v
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 t+ } m: Z/ }5 `# `
8 u6 S% Z- f8 c! k( }) A# M( c! J end;3 d, D/ i/ y) O0 F4 u& J; T
i:=PartsTable.YDim+1;1 _4 N) f- F7 {) e9 W& _+ W
end;$ y! f1 @0 y1 e: {
m:=m+PartsTable[2,i]; Z/ i4 X' G. G* w, V, m
next;
, c* P k' O4 t+ J& ~" }! Z6 Q
- F0 p" i" S6 v/ W+ U0 Q! I Buf:=str_to_obj(sprint("BF",@._From));7 x7 Z, F h+ y
@.move(Buf);
* f$ |. V+ ^8 \/ Fend; |