这个例子昨天正好看了,话说那本书的例子都很不错~
3 c t+ U1 v* ?( z0 b不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
% V( P7 h3 ?1 |. C% T8 his- k3 o! S# k: l/ A' {, K
i,no,m:integer; --定义整型/ W* K; [! n9 k0 ~9 h
Buf:object; --定义object& O6 B, S" j. L: d6 j5 t
do
$ g- q* _5 _& X! z2 H. h. u: A+ ] m:=0;6 }; N, G& h3 C; ^2 V- b
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ ?8 i6 L* a8 j) F4 A/ A
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
8 u6 Q. m% s! Z1 e. y5 q' Y if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
9 ?$ ~9 t& d8 b2 O- V' X' j- ^( S& i @._From:=PartsTable[5,i];
) }% w) S0 E( V9 O, v+ U ] @._To:=PartsTable[6,i];
" x- G i+ `8 u: ~, b0 h* t% ~( V if no=PartsNo+PartsTable[2,i] then
( v1 V9 g' a, x: m' Q/ l& ~% p PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
% A, s' _) n; {7 W; B9 ?5 n6 S) I/ l8 k1 m' L. V" C3 n& ?# ]
end;% D7 p# p7 | K% a( `7 n5 T: t
i:=PartsTable.YDim+1;
, W1 I. T( T, K) V end;
# q+ F+ w) H$ t. P" k, W m:=m+PartsTable[2,i];$ ]$ f. d' r) y3 v" g$ H1 N$ r6 d
next;0 U- U3 O, B K, p/ b4 U; H
3 H0 ~1 q. M% g3 l! y0 e6 d Buf:=str_to_obj(sprint("BF",@._From));
% j$ @" s) w6 M5 N7 m, t; u; L/ r @.move(Buf);
5 w$ y: i% j; k* wend; |