这个例子昨天正好看了,话说那本书的例子都很不错~
) R" ~( J4 Z! _不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。( z" [9 [5 x! k& J& ?
is
* m* a/ s% W0 \& b$ X2 o i,no,m:integer; --定义整型
0 b) @7 v4 [- `4 V Buf:object; --定义object1 E" J K/ r. r, s( m- O, D
do" O1 e! J6 G) {
m:=0;
5 l( K. u' l- i8 E- V) o no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
: S/ ?! `9 ^$ e7 |! n- v+ r for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ p% q& y2 F9 _9 v; e. s& [: g8 X if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 \: e- ~: C* w% l8 j- b
@._From:=PartsTable[5,i]; ; y4 _" k4 C: F2 E2 I5 P' `( q- Z
@._To:=PartsTable[6,i];& U$ h6 J# y3 C% a A% Q* f
if no=PartsNo+PartsTable[2,i] then
' D, z) n' M+ s I6 G2 s+ b9 ^, m PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
5 \3 X8 X# l! | M+ {4 ]0 {
0 V3 s1 G+ ]7 ~, T9 U5 i end; @# I$ L/ n/ u$ j+ j; A y2 T: H
i:=PartsTable.YDim+1;) q) m6 ^% B. O1 d1 l, V
end;
6 Q( b6 @8 w n$ A% M1 e4 C- o U m:=m+PartsTable[2,i];* S/ v8 T; R2 B
next;
3 I9 ~$ ~6 c$ i# i
8 I8 C2 F+ f$ n$ o& A9 G. }" J Buf:=str_to_obj(sprint("BF",@._From));/ i! R& E8 r6 v, ]1 J* @1 T
@.move(Buf);4 P+ G/ \5 a$ S- Z7 x5 @
end; |