这个例子昨天正好看了,话说那本书的例子都很不错~
1 b/ }8 ~: S. o; M- s- ~# T不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
Y' ~* e0 E' |" N2 `+ Qis! Z# ~( s9 B6 H; l U/ t
i,no,m:integer; --定义整型. d% T: `3 i- {% n, R4 ^7 f/ w9 a
Buf:object; --定义object
5 _( c9 m1 f8 H- r6 A N9 ?; i8 rdo# W4 @! V5 G( m
m:=0;
( @8 r- V" i+ q. B8 F8 P9 i- S1 E6 c no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)+ T4 k! l9 X+ F0 g9 Y6 y. J0 A
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
( h2 D/ R9 g) w if PartsNo=m and no<=PartsNo+PartsTable[2,i] then & a3 d6 e# i& V: b' P! z
@._From:=PartsTable[5,i];
" D( O3 T% c g' e4 I @._To:=PartsTable[6,i];4 T' z( W% E, g+ R' ^+ r# Y) T9 o
if no=PartsNo+PartsTable[2,i] then ' c; ` {8 a6 O9 v
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)- p. o0 c* f+ U8 g2 Y" |( R, d
& u( Q3 n+ u- T: l* ^) g& r
end;) R( y. f# c$ N6 w
i:=PartsTable.YDim+1;
4 Y5 T w9 F& o end;
" W7 v$ T1 P- J4 j3 ` m:=m+PartsTable[2,i];
' J. P5 z% Z# k8 r next;/ i# `2 z4 P1 f$ K
+ n6 D9 M$ C/ }) G2 K7 r Buf:=str_to_obj(sprint("BF",@._From));( x2 E* W$ l6 ]& A. E
@.move(Buf);
/ C- o6 w( J1 V! F8 ^, t1 Mend; |