这个例子昨天正好看了,话说那本书的例子都很不错~
- D$ g0 R' e1 n' B7 L; E不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。* K( u/ a/ X1 V+ n
is
9 ]7 V+ f4 d- @/ S i,no,m:integer; --定义整型5 x+ Q9 M& S3 C
Buf:object; --定义object
1 Y5 r' I0 O$ S$ w- T5 wdo& F& X! n7 |, M# @, b2 Q. o" v
m:=0;
7 w) `% O% m7 w$ m) Q3 F% V no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
! s5 o% k1 }9 P E" Y for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行4 d! k& v' k% }" T
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
1 ]3 n: U. h% F* P% Z7 G @._From:=PartsTable[5,i]; # r' Q% G, }, ]8 g! P
@._To:=PartsTable[6,i];; L; t$ c+ L6 [# H: `, v2 p
if no=PartsNo+PartsTable[2,i] then ) ^( h! I% t! H
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)( Q( r& ]! ~( K/ V9 Y/ N0 |8 ~
$ l# n `6 _& J( m. h end;
/ |+ P' V1 Z5 d8 I t i:=PartsTable.YDim+1;' o+ j# _( S& t# t& Q
end;9 J# K2 z+ o% W9 h
m:=m+PartsTable[2,i];
( ?9 d/ P9 {6 Y( n( M! s next;
+ y4 P( c$ `0 B* \ 3 G& z$ ?4 {% c5 C, x
Buf:=str_to_obj(sprint("BF",@._From));
. u) T& }3 Z( F @.move(Buf);
* q% m2 c, s/ l) x$ ?. Qend; |