这个例子昨天正好看了,话说那本书的例子都很不错~) b" _; y; G( E0 h" R: A1 o
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
2 e$ S* F' Q2 H/ _/ G8 ois
" X2 E( h [; r% ^1 h1 V5 | i,no,m:integer; --定义整型: m# y! U( f/ h0 v, X: \) f
Buf:object; --定义object/ Y$ _4 b$ O- p3 }0 n- W/ h. T
do
% {& n3 k. X; _6 ~, t/ q m:=0;
. Q- \8 g4 H$ s( }1 }3 w, F no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)5 o3 `, P8 Z1 g# p( @
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ A8 M* w& G \5 i3 D; L if PartsNo=m and no<=PartsNo+PartsTable[2,i] then $ G$ J7 t. v/ r9 N& {
@._From:=PartsTable[5,i]; 7 d6 ~4 g& l0 }
@._To:=PartsTable[6,i];. a! Y- \# W6 ?- D a
if no=PartsNo+PartsTable[2,i] then ( L/ U8 I% o/ b1 u9 R, B" {
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
6 z" H! L* Z B. f/ K. i5 I7 H c2 ]5 c4 J$ S# V. V/ l) t
end;3 f% } t7 P. T3 H2 R
i:=PartsTable.YDim+1;
: E: |/ d, F | end;
2 {$ w V& N2 `: w( k m:=m+PartsTable[2,i];
( u3 I0 z+ \, Z next;; A& f/ U6 N! U
9 n3 N* b/ p' J y. P3 F- B
Buf:=str_to_obj(sprint("BF",@._From));% g/ C2 ^; |$ Q/ b
@.move(Buf);7 u& N; Z- P+ h# ?8 x/ [8 A6 J
end; |