这个例子昨天正好看了,话说那本书的例子都很不错~
0 d" N' \1 y/ w% b& n s6 L不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 q0 N8 g3 c, i, f- K. u8 d5 B
is) |) ^8 g* ~# k/ Z3 k! z n6 D
i,no,m:integer; --定义整型4 B. E4 q, V2 }7 |
Buf:object; --定义object4 h0 S, K+ F/ d& m
do
8 h F( e8 A4 H& ? M m:=0;+ m; n: T: Y, Z R# J* F, Z6 l- z
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
0 ?; t! q4 d. K- U for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
& O9 I N6 q2 F( P if PartsNo=m and no<=PartsNo+PartsTable[2,i] then * @/ t9 B o9 e$ J% ~; l
@._From:=PartsTable[5,i];
6 e0 N2 i- t) e! D T& f @._To:=PartsTable[6,i];; u1 j O% ]' G: e2 k0 ~
if no=PartsNo+PartsTable[2,i] then
: v( ~% d# g" A& x$ U: y$ y PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)" z, }3 n: }' G2 R, i
6 P* r! h# A; H( U
end;
$ _- Z5 _; ^+ n( G: [ i:=PartsTable.YDim+1;
9 r5 S0 c! l- o, V7 f end;* |" W# |( k8 m4 I2 D! t: G9 {
m:=m+PartsTable[2,i];: Y3 l9 k3 o' H/ \. f: W
next;
) L. f0 O$ @2 ]7 Y" ?- ` % ]) q: N) |( @$ A3 }
Buf:=str_to_obj(sprint("BF",@._From));
& h r) z5 W s/ h0 y5 T" g @.move(Buf);5 @$ q4 _) f6 ]8 F! u+ P" i
end; |