这个例子昨天正好看了,话说那本书的例子都很不错~
" C# k9 @$ s. {+ _不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。8 F& A8 I p: [
is
# E5 A8 q0 a$ ?. k7 K9 B i,no,m:integer; --定义整型( G: O0 \+ H8 e; z2 H" ~
Buf:object; --定义object% c6 H; E. I) k$ V& f! l
do# r0 ^4 k4 p+ S% |' E9 v
m:=0;
( X/ s9 w7 {, d& z: A( e: m no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
: w Q: a. A0 | for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行8 n" W6 n1 G& p5 N- @
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
+ R& ]$ T0 ]& B( d9 D+ ? @._From:=PartsTable[5,i]; 5 f! B4 F$ \+ E- c6 T( |
@._To:=PartsTable[6,i];
5 [: N9 j7 w/ W( S/ z: g1 D* [ if no=PartsNo+PartsTable[2,i] then 4 C( _3 T: o: M6 z7 \+ O1 L! `
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 T; {/ M# y, B6 w, Z+ K
( E4 V# a. a9 x ` end;, q+ } j+ Z1 G4 z
i:=PartsTable.YDim+1;6 k' {& h2 N, f4 L: d" x I# |
end;
. B. L( v' S( h: h3 a, F- o/ n m:=m+PartsTable[2,i];, z- n( {9 k- r8 Q8 _! \- d2 ]
next;
( T/ V# H( z* u' d4 e, w+ K1 f
: r- Y; Q" P( j8 h6 V O7 h: U# Q' ? Buf:=str_to_obj(sprint("BF",@._From));8 m' e3 A% C" z/ Y! s. k- G
@.move(Buf);
3 g& ^& P; w, U9 c' Aend; |