这个例子昨天正好看了,话说那本书的例子都很不错~
4 s5 ]9 N/ X$ J. i/ x, j不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
( p8 G b) w% P$ j5 o$ m0 g5 Y# Y Uis
! R* f( F, q4 v) W i,no,m:integer; --定义整型) _ { `" h, W3 h# K- q8 M! A3 L$ a' N
Buf:object; --定义object
' F, k; ^) Y( X; H9 g( x8 ~do- o/ L! R2 i0 p
m:=0;0 t4 z- ? T0 N# }0 K7 M j
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
7 r8 O$ L: `, k/ d for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行1 n) C; L9 [" f: @& o1 a: ]/ a! h
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then i' y/ U+ w5 r) t# R3 [/ @: [7 r
@._From:=PartsTable[5,i];
* I) I( C* S6 @# @( t) ^$ z @._To:=PartsTable[6,i];6 ]4 M; e* W$ H
if no=PartsNo+PartsTable[2,i] then " g7 |4 i2 Q5 Q' _' C% B
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)7 r3 {1 i0 g. U
8 l- L0 m+ q3 a( p$ B: j+ k
end;
5 ~" e! O7 g C; n: y9 g" `5 J i:=PartsTable.YDim+1; u6 I7 L# b- ~, ?3 {2 T9 N
end;* j( d0 W6 U# q# c( u/ w2 S8 R5 y; v
m:=m+PartsTable[2,i];" J5 h1 N' ~# f; S- g$ E1 |- ^
next;
1 n& y* `% m6 q3 B/ b( M $ A2 V) a6 k& f
Buf:=str_to_obj(sprint("BF",@._From));& Q0 y2 q; T9 W* C# e- U
@.move(Buf);' i9 ]: ]! y$ p; p! K" x* L1 W% T
end; |