这个例子昨天正好看了,话说那本书的例子都很不错~( `0 _2 W: @# a' Y u& t C# c
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。: I( e; h" ~0 R- |0 K5 I$ x
is
2 i2 T. }: ~( e7 U3 \ m7 H+ Y* y6 y i,no,m:integer; --定义整型5 m4 }. O0 H5 d% z2 F
Buf:object; --定义object
$ i8 D5 V2 F7 _4 qdo
: L/ e( D) w0 R3 k* M m:=0;! A- v% P A# X6 d/ J
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
) T7 h& V( |) T) M7 D+ l6 W for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
7 P& ^) T- }, P3 B: T if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
8 C# B! K6 ~0 X @._From:=PartsTable[5,i]; # A) }& w6 ]* G v8 v2 p. h, o8 G
@._To:=PartsTable[6,i];
F* {+ |9 j) O8 }' N9 {6 a; _ if no=PartsNo+PartsTable[2,i] then
3 ~" S2 i) v/ z F PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
! Y1 Q" `6 K8 ^) Z7 F8 p) u$ N; x8 k" D# F3 `4 ~; J' H! a5 ?; \3 C
end;
; T! S& n9 Q% Z P& O* g! \ i:=PartsTable.YDim+1;9 t" h: N, L0 U! _1 L: }1 r
end;
8 P) H5 b. t0 J m:=m+PartsTable[2,i];
, z% Y$ w3 a, ]8 C, B next;
' b) X) D6 C U0 K* A" x
3 p+ ?, N1 ?4 |/ l/ K4 n Buf:=str_to_obj(sprint("BF",@._From));
* T$ j! c: r9 r1 ?; ~( | @.move(Buf);/ j% p6 |- S: D) I
end; |