这个例子昨天正好看了,话说那本书的例子都很不错~" c+ M; A' a/ K# Q9 \
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 c- v0 t/ G. t; R2 l6 }" Iis3 Q8 e$ y4 @$ {. s+ `$ `+ G- h& X
i,no,m:integer; --定义整型
4 \+ E* J, I' N: s, a! j Buf:object; --定义object
# j" A* \# }5 {: `- q* N/ rdo
' J+ T! ^9 J1 Z, ~3 F' W0 K m:=0;
: y6 I; |, ?+ n9 j3 v no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)+ o$ a" [' w7 F* l, Q3 S- _1 B3 ^; h
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行2 F1 `7 C1 B% |2 _8 l
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ) v4 A/ S. L5 [+ G" `* @: ^, i+ h
@._From:=PartsTable[5,i]; * l! ^& w0 C. @/ o- q" r
@._To:=PartsTable[6,i];2 K: s& D. O- R4 [( P( j% W. g
if no=PartsNo+PartsTable[2,i] then
% h( e* ?: `1 {7 N% C0 b( I* |8 e/ G! } PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 Q" w8 j0 j1 D* F4 l0 _$ r
/ T1 G& n6 r0 r) m6 t4 n/ }0 ` end;9 e! I( m% |' q! F7 t& w3 N
i:=PartsTable.YDim+1;. }1 [9 o, G, ?
end;
% c C; B; l9 g8 f m:=m+PartsTable[2,i];6 C/ u |) L" d4 ^) I2 I& E1 G
next;
* u% ]5 K. M) }# Z- x 2 a# d( ~* }, }8 u, ]/ |1 Y, t8 N
Buf:=str_to_obj(sprint("BF",@._From));
5 i+ c& I# _# p; ~ @.move(Buf);
9 m/ v, J. r! C3 p* Oend; |