这个例子昨天正好看了,话说那本书的例子都很不错~) x8 ?3 W/ D2 @% L
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. U- @9 g3 u) Q$ T* ^$ Jis
' U( h' `8 [6 ] i,no,m:integer; --定义整型
" G7 h7 A; E4 y% y, f( K Buf:object; --定义object+ @2 R2 u d- h0 e0 Q) r& F, h) L c7 `. P
do
`2 u1 W, k' {% `8 \, g m:=0;
) ?- y, m4 [, |6 u2 `$ H/ q5 A no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) U( U9 d8 _& f- \8 A9 p( P
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ m% C: B* v4 n U8 Q- [+ [, @. o if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
) r2 t y0 V6 C @._From:=PartsTable[5,i];
. a$ T6 V5 E4 c0 Y+ C7 F2 Q @._To:=PartsTable[6,i];
6 ^ B9 H0 c+ A4 r# L5 _. u if no=PartsNo+PartsTable[2,i] then
" \3 X5 V$ U4 W0 J, O) O PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
$ c0 ^8 ^" I7 G6 h' L, m( J& D
% }) M+ o2 S, k: P! m end;, L4 Q1 l# t& q* I; E" c1 I5 G
i:=PartsTable.YDim+1;! H4 v$ S S% z$ `0 f
end;4 b# c7 U5 E u5 l9 d9 w
m:=m+PartsTable[2,i];
: m/ g: [ `& X0 M- |1 o* c* a( R next;
; b5 Y7 @9 n( b0 U0 I
. z0 L# t7 x; ~+ m& u Buf:=str_to_obj(sprint("BF",@._From)); @% w, `2 O* m3 R9 u5 Q
@.move(Buf);
, h- |1 }9 u/ [end; |