这个例子昨天正好看了,话说那本书的例子都很不错~
/ y5 ^! }; G- ~ c* d不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- [. m0 Z8 Q# Y: S" b' L/ ]6 z( Mis
/ D) \- v* x( d i,no,m:integer; --定义整型, T6 r+ O& k' T! h* Q/ n
Buf:object; --定义object
. m& u' R& B' t# H3 Zdo% V1 Y0 l( F: ?% f$ y+ G K
m:=0;
Y4 R3 n/ J: L no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
8 u N( G8 x# A for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行! ~* L8 I4 D( H
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 a q) `. ^, [6 v. T- ^
@._From:=PartsTable[5,i];
; N( F' @: _, I9 ^- U @._To:=PartsTable[6,i];
, k, c3 `# H, u- } if no=PartsNo+PartsTable[2,i] then ; b8 N9 M' w1 }6 i F/ I d
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
8 Q0 u8 z0 a6 a4 A% J) L! O, `# B0 W; t" X4 \) i( l9 L
end;
1 C2 [( U5 S5 g: Q i:=PartsTable.YDim+1;
! O0 N3 O( E; _1 _2 b! l, H end;! H/ `- x _/ L8 Y- ~: D
m:=m+PartsTable[2,i];) x3 `. W! A6 b) c$ `2 s
next;7 C2 j) v/ R b/ ^. @4 l
& c8 i3 I. Q$ ]& o- u M% W# r# b Buf:=str_to_obj(sprint("BF",@._From));
5 y! q9 r1 h" [5 ^- s0 H @.move(Buf);
; ~5 B1 S& \' g: O/ n0 d0 tend; |