这个例子昨天正好看了,话说那本书的例子都很不错~0 h M$ I" P( e! L( v
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
" M( J' U! h) k2 B; {$ y& |8 Mis
1 w2 ?6 m( t D# F# H: z$ [# l i,no,m:integer; --定义整型, {) x4 h ?- T; F8 y% r4 v
Buf:object; --定义object; Q( B/ Y' s3 c1 @4 b
do) w; ]" Z- u, z2 w7 {# b
m:=0;
# o8 g5 Y- m) e" Y. Z! a u+ B/ H" C. p' e" [ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)5 \$ @8 d5 M& K3 P# @! o
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行7 J% Y L% P1 U
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
3 p+ c6 [! e I- K, `6 L @._From:=PartsTable[5,i]; 2 S$ ?$ I" m6 T, j0 E) [# t
@._To:=PartsTable[6,i];
3 j6 J8 _" P6 Q4 \ if no=PartsNo+PartsTable[2,i] then & J- t6 i# X4 _3 Y: O, q8 F) k5 Z( c& R
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
% I9 z' o$ G# Y, K+ M/ P
$ V( q7 |( a0 [( J4 l+ r2 f) R, c end;3 ^" E Y0 N# L. H
i:=PartsTable.YDim+1;
c" V* ` K# A* m& L: Z end;
6 ^, M; i7 `, P: m+ L9 q' K m:=m+PartsTable[2,i];3 J, h' [. y) U5 y
next;
3 p" Z1 u9 Z q9 H& J) _ . j' ] @" M2 M E3 n( G! x2 ^) j
Buf:=str_to_obj(sprint("BF",@._From));4 j2 s. c/ g, ^1 Q$ p8 J$ U
@.move(Buf);
6 @9 P: j" j y$ |9 dend; |