这个例子昨天正好看了,话说那本书的例子都很不错~2 Y3 V& I" h$ v; _* E" \
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
# F# q$ D3 |, L2 h L0 ois
' s) A; d# S' {. F( z i,no,m:integer; --定义整型
" Y' n8 P$ e! t8 Y3 M Buf:object; --定义object9 v& P$ S( b- D% O! o
do, d' K* w6 Q: y8 m; W
m:=0;
9 Y# u# E" v6 j8 B* M. T& I9 T$ v no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ ~+ l0 Z& k1 E( }$ f9 \7 m' Z( x for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
i6 e: S6 L" b; s0 ^: D0 i if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 f2 v! ]3 f) W# u
@._From:=PartsTable[5,i];
# L2 F$ v$ \, S) O, H7 ]' \ @._To:=PartsTable[6,i];+ }5 {6 U P+ O4 l
if no=PartsNo+PartsTable[2,i] then r2 N' b1 ~6 I# N
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
& Z6 U/ O1 _- I: F! Q- j
3 i& E- y. V( I" v end;! L0 D3 l9 @8 u% O0 T8 d1 }5 Z$ n
i:=PartsTable.YDim+1;
4 l8 f2 |& K( ]3 J, Y end;
! P- X7 E2 F/ ] m:=m+PartsTable[2,i];
0 D( R. `- I+ F next;2 e1 y+ x% W1 O
4 E4 h, |+ `) h8 b- x
Buf:=str_to_obj(sprint("BF",@._From));
% n* d. V2 H5 U6 o& p& W+ q z$ c @.move(Buf);/ _" F1 x, v6 E" Q2 F
end; |