这个例子昨天正好看了,话说那本书的例子都很不错~0 ~1 k, `; O* ~ v! P, _7 X
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. h0 P# s+ @1 y! W. y
is
; [2 Z" M/ l$ n" l$ w i,no,m:integer; --定义整型' I( q: g# s4 i/ d, P m
Buf:object; --定义object1 `5 j/ i9 S, k2 W& ?! F
do. G' F* M( P0 H6 R5 E. @; A, N
m:=0;
1 M0 c0 O% T* \# A no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)0 a" p& x `; {
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ I6 E0 q( ]7 x/ ~) U if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
. M5 g: Y4 d- o$ p% Q @._From:=PartsTable[5,i];
) Z; p% L9 `" D3 I/ p+ x4 c @._To:=PartsTable[6,i];8 S) c0 G) U6 E
if no=PartsNo+PartsTable[2,i] then 4 Q& {( J8 N% A" L) A) ^2 s0 y
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 p! h3 N' r, i* n$ E. P% r
* T+ _0 Y' ]9 I' r$ X6 V v( E2 H' X end;0 P h% N( L9 m; T, D
i:=PartsTable.YDim+1;
) m( S9 `( u4 P7 S6 ?; N end;. T5 _. v7 y- U3 [ g
m:=m+PartsTable[2,i];
4 Y* }: R) K* P, L next;
+ @3 n& c, U- M, ? S" G
) F5 d* b2 Y/ a Buf:=str_to_obj(sprint("BF",@._From));
5 ]6 h% f. u; T @.move(Buf);6 H: I7 p) S4 a9 q6 q! m
end; |