这个例子昨天正好看了,话说那本书的例子都很不错~& P8 s" P; G, ^! g6 }3 f
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 ?) X- W- `4 d% Lis N7 M; J& ~' m* w0 M
i,no,m:integer; --定义整型
, ?' I( r( _2 L0 @, _* E( G6 ] Buf:object; --定义object, K9 N$ q9 k& P2 P2 q
do! I7 N( q& e) A0 W+ o4 R; k
m:=0;
' g: F6 w/ P% P. G9 x* ]0 R no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
$ D8 J* [2 L; b, ` for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行2 r$ }2 O# i* w! u* D
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then . t2 d, z# | f, N% l
@._From:=PartsTable[5,i]; * b* {" R8 W7 C
@._To:=PartsTable[6,i];
: F( J2 p0 g9 [4 s if no=PartsNo+PartsTable[2,i] then
+ v V9 C) F* F3 K1 k PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
6 y- y3 ^/ C$ ?6 D ?: o
, ?; B- }# {. z3 L end;
4 d. s' _* S6 x: v0 a1 _, g1 ] i:=PartsTable.YDim+1;
) T" H8 B9 f+ i& U end;
* y9 t" |* w+ F8 {6 ] m:=m+PartsTable[2,i];) U7 z% X3 U- _% s: K' N, P8 H
next;7 ^: E. F& D3 G/ i7 q/ W
, u, L" w" F* F* c# X Buf:=str_to_obj(sprint("BF",@._From));
) R. u6 `2 f8 g @.move(Buf);) p5 _; t! _. D% o% K' o
end; |