这个例子昨天正好看了,话说那本书的例子都很不错~0 ^2 \4 r- }: V$ w1 X' \! v) h# `, x
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
9 a- F K) i" d# b! ?. ^( r) {is
( e1 `$ u. |8 b* c! r i,no,m:integer; --定义整型+ H( r" h8 Z6 m4 g" J
Buf:object; --定义object
Q m. K% L7 Xdo
, ~( S. d' R+ K: m4 L7 y( @% C m:=0;
2 G: h5 h3 Z$ o M: \6 w no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ Z, D) N, G$ J \9 f for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% R1 n5 `2 Y0 j+ n: I( p, ]# D if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
$ Q5 J# n ~1 ?' V# O0 p @._From:=PartsTable[5,i]; ! h+ T- Y# P N: j- P$ V/ \7 X
@._To:=PartsTable[6,i];
5 _2 p5 ^. F8 z3 ~- o+ Y if no=PartsNo+PartsTable[2,i] then 1 J. Q* d5 {2 C i& X N# }
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
% \9 ^" ^ t9 k
4 ? ], P" i6 l. c3 V end;
" d8 ~& l! @+ R1 k8 O# v% y i:=PartsTable.YDim+1;
; v: @4 b, H$ U# e0 I& ~4 C1 i end;
4 j3 v( d' B: R# d% f% x( y# H m:=m+PartsTable[2,i];
7 N; |1 }$ ]2 f- ~* m next;
! k) H* D! c1 {( M : q: p' ]& ]4 O
Buf:=str_to_obj(sprint("BF",@._From));
p' O5 p/ k: W6 c @.move(Buf);4 i) s! v+ [, T$ J
end; |