这个例子昨天正好看了,话说那本书的例子都很不错~7 i% V1 y3 Z2 |" w5 g: q
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。+ E+ ]3 D; h9 U `
is' S* D* o3 {# |4 |# Y
i,no,m:integer; --定义整型
) f L& w5 U# x8 O: j4 h Buf:object; --定义object0 r1 l# e# y( Y- m
do# o/ I1 ]/ {, W7 J/ v2 d7 y
m:=0;9 q1 N8 s+ ^, e* @
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)2 |0 M% x1 K) a( D' i
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" J6 F, x* S h; z4 }" p7 ? if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 6 c9 H+ ~5 i$ K: r, ?5 H
@._From:=PartsTable[5,i];
3 s$ d7 L. m2 K' L& @0 p, V0 i @._To:=PartsTable[6,i];
) G& f- j" g6 b if no=PartsNo+PartsTable[2,i] then 5 d5 K: E% J' F4 K# U) j8 z
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)9 L, d4 i6 g, v9 |) `
$ J1 a7 d( L8 D% V0 | end;$ f) n4 {/ W2 ~/ ?2 u
i:=PartsTable.YDim+1;
# q e" r' b5 Y0 | end;7 _. C9 J4 x ]6 H) P. y* c) f
m:=m+PartsTable[2,i];1 ^2 B' b" z& l4 C, K
next;
" l: y9 w i6 _: x. x 8 V2 M& d$ p2 r7 T" h! R
Buf:=str_to_obj(sprint("BF",@._From));
: a0 s4 \# I0 b+ A2 T9 g8 N @.move(Buf);
: t1 A. W6 c* Z0 Dend; |