这个例子昨天正好看了,话说那本书的例子都很不错~! S7 Y% N q$ l8 K a6 l
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。7 p [3 u" t! F" w( w* L R
is9 W8 D' g+ g6 R6 ?" j7 c1 `7 X
i,no,m:integer; --定义整型
4 s0 ]* f! a, E! z M Buf:object; --定义object
! ]' O- r3 t( E7 u+ Cdo
/ u4 R/ g1 B' M( q* o m:=0;4 v. o, q9 |4 K2 ?- r
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
3 W6 j( G, b8 G, y for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行$ v/ d% G5 Y: J
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
5 Q# ]+ C, J4 } @._From:=PartsTable[5,i];
' K/ S( f5 |' l0 B @._To:=PartsTable[6,i];; Y$ x3 j6 j2 E! S0 V
if no=PartsNo+PartsTable[2,i] then 4 W7 ^* M7 K: ~9 {# y: c* Q
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去). J& d' z' T) H9 ?# B3 ~
( S5 D& a3 R1 F8 l
end;) g4 @ w, m S) n, r' \
i:=PartsTable.YDim+1;
& W+ ~6 F$ ?* X/ C3 B' u$ x end;
+ b* ^3 |1 r, i- C: X l. { m:=m+PartsTable[2,i];& \9 v9 }8 N( X! Q5 X; a+ z
next;
' H Z: L2 J6 ]( t m 3 M9 g4 M9 ~' D6 ~3 r0 A$ D
Buf:=str_to_obj(sprint("BF",@._From));
% Z4 V& R& a" a! @5 k# u* g0 ?# K @.move(Buf);
! U' J4 {0 p1 S" {+ Gend; |