这个例子昨天正好看了,话说那本书的例子都很不错~$ u; [7 x O# V& |9 B( v, ~
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
) u s7 C( ?+ X, P# Tis0 `7 w2 y @' l6 x; ^- f3 S
i,no,m:integer; --定义整型
$ \# U- I/ {) W P1 {) Y0 c Buf:object; --定义object6 X" f& Q4 F, T6 @5 K/ {
do4 ~- g2 W6 `: p$ d- a+ S
m:=0;! I5 I4 D. y; y f6 E) N9 J% E
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)1 M+ I% f$ w6 Z2 A7 N: M, i W
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
$ k0 f) B6 { l if PartsNo=m and no<=PartsNo+PartsTable[2,i] then : g2 {' @( a! A2 l9 T$ L( b
@._From:=PartsTable[5,i];
2 E: k( \) F! V" E. m @._To:=PartsTable[6,i];! `! S& X. r1 O6 o0 ~
if no=PartsNo+PartsTable[2,i] then
& i+ L* G4 |* |, } N+ a PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去), K2 v, {! B0 R% `
$ g6 w8 [6 M u& s6 o- u. U$ L
end;
) x9 W2 \ N9 S i:=PartsTable.YDim+1;' j" H; }& I* t [' D
end;0 Z0 K4 n. e) d) r, [6 e, Y4 e
m:=m+PartsTable[2,i];
# N( r2 P- a; E! z( {7 v$ E( n next;
5 x8 S5 i! i/ d% Q; d; c/ ?7 m4 _& Y 4 l/ B! i" _1 f
Buf:=str_to_obj(sprint("BF",@._From));( B! n! A9 i) I2 B1 M. w: J% T
@.move(Buf);
9 e1 C; q# U+ q: y/ vend; |