这个例子昨天正好看了,话说那本书的例子都很不错~
3 `( M5 {2 D& x! t) ^) h+ B4 ]不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
D6 g# o, {1 c2 j0 d$ P; G& Ris8 P0 X8 t, W: J9 B+ ]1 Z j
i,no,m:integer; --定义整型
& }% o) Z% q* i1 q8 z, v6 K' ` Buf:object; --定义object1 X9 n8 G; w# p, N6 E8 K
do
O5 U7 i5 l$ Q3 R& n2 ~# \' t m:=0;
" M# ]' X" {9 ~" z" K$ R' [7 p no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& A% F a7 E/ w) `
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" d# I1 y) M, f1 f6 [4 s: v Y) B if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
$ q/ E$ y" w" x4 [ @._From:=PartsTable[5,i]; & \- ^9 } R3 r$ E
@._To:=PartsTable[6,i];+ Y" r2 M8 ]* T) _$ X. C
if no=PartsNo+PartsTable[2,i] then * b3 h, F4 J9 \; B$ R0 G+ W
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)1 [5 F9 M2 S& E+ p0 }
6 w6 v1 G! U+ f7 A2 i+ A8 N end;7 J* z) d$ ~9 x5 x4 m
i:=PartsTable.YDim+1;* G3 \ H! o6 C& d
end;" N x# }% M2 i2 c
m:=m+PartsTable[2,i];9 C, I ?7 m7 ~9 T5 Y( x7 t
next;6 K1 [ [# S; ~
3 n8 m- w5 F. W) A4 U
Buf:=str_to_obj(sprint("BF",@._From));
, S6 M1 ?, m4 \1 `7 }$ I5 Y: N @.move(Buf);
. P% E+ s a8 k- ^# y% @& {end; |