这个例子昨天正好看了,话说那本书的例子都很不错~+ C3 r0 V- H; o; o- b. m4 O
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。" f$ T2 {# M7 {3 N! }' M
is
3 z3 P! r5 y# w' } i,no,m:integer; --定义整型 A' Y8 B# t9 t1 e% @! ?
Buf:object; --定义object8 y S+ K) F- F/ Z( L, s
do& Z% N9 D3 b+ z; Q! }/ z) ]$ T
m:=0;" D* v# w Q z! i! S. a
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 f7 D2 _4 F# @6 i for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ G0 ?6 O8 r) q# c( V8 X if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( d( j) J" d, {) J- g
@._From:=PartsTable[5,i];
. c. [4 @) z' s, S N% x. A @._To:=PartsTable[6,i];7 S6 ]/ M- n% d2 z( C2 |
if no=PartsNo+PartsTable[2,i] then
) q$ C7 p. Q! a$ {3 O PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)& r% x( q) k l) _
8 i5 N& C# @+ Y2 y0 \& g end;
% f. w0 D }2 X: X: t6 E i:=PartsTable.YDim+1;1 j2 B" `) f1 ~/ b8 d
end;8 j: \) ^4 s6 ]
m:=m+PartsTable[2,i];
: e8 f6 W1 S$ h8 b! g next;
( A) x1 k4 l1 f
" w4 S. k, l1 k Buf:=str_to_obj(sprint("BF",@._From));
D6 o1 J. g% O) A% y @.move(Buf);( z0 O, l% s! _
end; |