这个例子昨天正好看了,话说那本书的例子都很不错~+ l0 g+ M& _, \4 B, S, G1 ~
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
; x7 Z% v' y) O9 f/ O ?is
3 U) Z! l3 F# m% P i,no,m:integer; --定义整型
1 A# K) @6 ]+ [7 M2 W: k; w( ]% j Buf:object; --定义object1 J2 V: b5 c3 `' G. I- T8 f
do
" [+ z7 G: A4 s m:=0;8 O& H. b+ X, x& G
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
" B9 c5 ]' H# B# w& [' u( V for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
0 W/ S6 A N/ A" S3 f if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! U( l. e5 n; f+ f: `( p
@._From:=PartsTable[5,i]; ' ]5 F. a2 f3 F) c1 A. Z
@._To:=PartsTable[6,i];! v, a$ w& w5 H" C' t# U1 X
if no=PartsNo+PartsTable[2,i] then
% H W! x9 }5 [" ]" @ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
1 @ N$ \$ `+ v; `* X: S1 V
( F6 U( f( Q( j% ^% X0 B' M5 c1 p0 ` end;- s7 f. Z$ }' G) a: Y; ]; _- B& S
i:=PartsTable.YDim+1;3 K5 H4 \/ z1 _: z
end;1 E8 w' h# f7 ?2 _- P
m:=m+PartsTable[2,i];
, O! R8 y- l* a% k next;: k! c$ ?8 V1 {6 _
( \0 D8 E$ Q7 m# e
Buf:=str_to_obj(sprint("BF",@._From));
$ ?/ |, x2 e! K: ~0 o. L @.move(Buf);% ` K; S; Z v/ q" W9 G
end; |