这个例子昨天正好看了,话说那本书的例子都很不错~
2 f0 K0 \; L6 p& l* _不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 W. ], Q3 v5 T" H5 S4 W n
is
/ X% `9 z; x. X5 G; {8 l! q, ~ i,no,m:integer; --定义整型0 a: R- Z, k/ d6 j0 ?" e' d
Buf:object; --定义object
! C0 m# s& h# q/ ]do
" P" B. V; X! @. R8 p m:=0;
6 L6 M6 V: D t no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外) A5 p& N: T, {# U: ?
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ n/ _ N* p4 w) }9 { if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
* b; a% t6 }7 ]3 I7 i+ o2 V @._From:=PartsTable[5,i];
6 x1 e) Y) j" @' S2 A @._To:=PartsTable[6,i];# ~0 K' D4 g. w4 N* }/ Y* X+ o% a5 u
if no=PartsNo+PartsTable[2,i] then . W, d$ P: i' H, K2 |
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)) D4 h% y7 v! _% {3 c- ^
" c6 g. z1 z" w" a5 ^7 v
end;/ f# f1 o) d6 I2 \
i:=PartsTable.YDim+1;7 u' w0 x/ J; \/ _" o' I
end;
6 {7 J; T5 m' y4 P+ _8 ] m:=m+PartsTable[2,i];- b' j% R8 m6 T
next;
; z3 [, |/ A8 `' ^ % k, ]3 j0 d5 R5 e! m
Buf:=str_to_obj(sprint("BF",@._From));
0 V9 U2 A5 L2 s; T& _ @.move(Buf);
+ w' ]) K$ z' O7 _, i: Z- Fend; |