这个例子昨天正好看了,话说那本书的例子都很不错~, S' A& [6 S. h0 I7 V: F( Y9 ]
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。# M& @: W' X1 l6 ?' Q
is, n% u3 h4 f, w2 K
i,no,m:integer; --定义整型9 r- o/ P+ F5 O6 G
Buf:object; --定义object
3 O1 F& s+ J( f/ k+ B9 h' \8 ~do1 I2 \5 a! E l# z4 y
m:=0;
/ W$ D/ P5 j6 p. z no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)- l8 h- F: e+ o/ i% ~5 g0 l
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) U7 }( l8 u' R+ z' O- h" E if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
$ l, ]$ E& j% M) j @._From:=PartsTable[5,i]; / ^4 x5 w% _' ?" N" z2 w! U
@._To:=PartsTable[6,i];
8 U5 [( |2 Y* ?$ a( O; p if no=PartsNo+PartsTable[2,i] then ; W0 A+ O+ X8 g; c
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去); X5 U/ i1 v( {6 y; b' h7 L
+ r, b( c4 ?; W. B
end;) Z0 @- ]0 @5 S/ O! I- Y7 F5 A
i:=PartsTable.YDim+1;
* u2 T1 O. d! s! o' ?) K- Z: @ end;
+ a) V; S0 {+ Z: I8 s; [ m:=m+PartsTable[2,i];! F4 ^' k8 I( N, |) s8 L, F E
next;
6 t4 r0 i; L) J# _. l7 |' { 0 l, C4 d g1 ], E3 Y
Buf:=str_to_obj(sprint("BF",@._From));
+ S5 [4 u# Z6 E1 z4 }8 s$ [ @.move(Buf);
1 Y& I5 h$ ?5 n0 ?end; |