这个例子昨天正好看了,话说那本书的例子都很不错~
% {6 a! \( c$ `& a a不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
8 L, F! ^5 x6 a8 `% `is
2 l' x8 A+ {2 b, W0 p- F: {3 J i,no,m:integer; --定义整型
4 c% }& ?# ]7 w/ u Buf:object; --定义object1 Q5 y2 g6 x% D( j! Q
do
. X {$ E; E4 i3 ? m:=0;7 v9 m& r" h+ E [9 r/ T
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)2 U, {3 Q/ ~; ~7 _0 ]; Z
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行7 y T$ [6 `! t [+ x
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 7 {* w& N/ j! K9 ]4 i6 r
@._From:=PartsTable[5,i];
, h2 D9 A* o) _ @._To:=PartsTable[6,i];9 h, x6 j* u `8 ^
if no=PartsNo+PartsTable[2,i] then
) d! e$ ?, h3 u: w# A" n# ~ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 N r e/ m- T3 W$ g
5 }8 A. O1 @% \1 u+ t end;" f; ~, z0 y, d& u
i:=PartsTable.YDim+1;# Q' y2 x; C: i- T1 `" w9 C. s
end;7 ~' c( v1 I) O
m:=m+PartsTable[2,i];
+ i/ X: C. w3 t8 U next;
8 C6 q7 q! v, z3 v& G; y0 _ , h3 F6 ^! R: V2 V
Buf:=str_to_obj(sprint("BF",@._From));$ x+ ?; A; C" D6 y2 |& W5 D
@.move(Buf);
; v+ ~+ t- A% ^! Kend; |