这个例子昨天正好看了,话说那本书的例子都很不错~
) A3 Y* ]6 n$ O; W. `不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。+ f# C; D& Q: o6 ?& H; U& ^0 y: g. {
is
* g0 g1 U( s0 P0 z/ { i,no,m:integer; --定义整型; l2 K0 j9 u$ O2 ^ s, H/ h z
Buf:object; --定义object
8 [; S+ p7 A6 h7 H$ q( jdo1 F4 `( m6 B0 f- X' b, F5 Q
m:=0;. }) C9 y( m& w& V, O
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)! W# \: ~! e. J8 ^
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
2 _" o3 y$ {# P9 u0 T3 f Q4 E if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + k1 T+ O. s% x2 @9 U
@._From:=PartsTable[5,i];
% @4 A' A& Z1 o) G( g4 b% x* L @._To:=PartsTable[6,i];
7 D8 m- F+ y& V8 u- M if no=PartsNo+PartsTable[2,i] then " B% h- B# u1 b( ^6 t. H
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去). ?! l7 p1 r. E/ f" i: f% `
, Q R4 m8 r1 f% H; o: }4 o end;
- ~% Q% K' Q c I4 V+ n/ g i:=PartsTable.YDim+1;
7 L% v8 {5 H8 ~' @! { end;
) C8 x, A0 @( _8 M, z$ j m:=m+PartsTable[2,i];4 a% @7 l4 G6 ]4 r" L! J% ?
next; | I c0 ?2 s. x. j7 h
& N, v5 W, w- B- s4 D$ k7 ], B Buf:=str_to_obj(sprint("BF",@._From));; S' p1 ~& I5 z _" O+ g
@.move(Buf);
+ M$ z, Z' u$ U& @; fend; |