这个例子昨天正好看了,话说那本书的例子都很不错~0 }; z6 J2 R% l0 s4 u# K5 ]
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
( I* }$ R8 N- n" O( w5 O* m2 i# his
! d3 k, g3 v( c. I, G i,no,m:integer; --定义整型. h; a2 L" y Z n% j8 A& D
Buf:object; --定义object
; |$ }, U; c# h" @6 ?do. u7 D# y* g5 L% \
m:=0;* i( r' P7 E2 P( [ L
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ ?. { D% j2 W0 v- s& j% y5 j: M
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行- C& S( R: |" y& E9 A7 ], c4 A
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
2 t+ l4 ]" G9 L! q @._From:=PartsTable[5,i];
& M( R `. L9 X; A @._To:=PartsTable[6,i];: v5 g" O! L7 A1 b: y( D
if no=PartsNo+PartsTable[2,i] then * y0 @' H0 } I& X4 l
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)' V( ^ M8 q* Y S; K
, W5 N" D' p& ]# R, [# J( {" n
end;: g0 X7 q* h+ Q) H$ c$ W% e
i:=PartsTable.YDim+1;# S. V6 r4 v' a/ D( }8 G
end;
1 u9 U! ?: L% C2 Q0 e m:=m+PartsTable[2,i];5 x! l, ^; n0 X( D* b% z
next;% }* }! I* S, H# Y& h/ t
; t V( d$ V2 T5 S' S Buf:=str_to_obj(sprint("BF",@._From));
5 k- J+ d, d& z7 W# N @.move(Buf);
# |, ?) y0 t# S8 q% }6 nend; |