这个例子昨天正好看了,话说那本书的例子都很不错~
; k+ C8 ?: O; B不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 o9 s3 v! l+ I" N$ Wis
( T, |0 j0 A( c1 B/ W9 O i,no,m:integer; --定义整型0 q3 e- `, O1 B7 W! R
Buf:object; --定义object, {4 W: o. `! p. M. _6 P
do
/ ~/ a0 N" g# p m:=0;
2 z8 P1 E4 S- u7 Y" L no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)- V$ d+ Q' E& B2 E! K' _
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行: [0 m R( m- C
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! |, [2 U' O |# U9 o$ n @._From:=PartsTable[5,i];
8 j6 j- ^6 Y; D3 f @._To:=PartsTable[6,i];, ?4 I. ^# Q# d% D
if no=PartsNo+PartsTable[2,i] then 3 F. ^) k2 `" J2 I1 m r1 y4 P
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
2 I' S0 V& X# _3 v3 i% J4 P) ^6 c$ O3 W, G9 [# }1 f& k, h2 P
end;
; y5 }& n' b) z i:=PartsTable.YDim+1; R% c$ T- m5 H6 M, p7 B4 L
end;
$ S; N: A+ g4 N! k) P6 n+ A m:=m+PartsTable[2,i];
6 T: x3 t; \$ r5 w% q" N3 i next;0 `: O' @, F3 c
9 k5 p% g! c3 z7 D Buf:=str_to_obj(sprint("BF",@._From));
* r" T6 ~ @3 R" N2 _ y" ] @.move(Buf);
4 F6 p7 ]9 q+ M( Oend; |