这个例子昨天正好看了,话说那本书的例子都很不错~
: I' b* }( u" ^$ z' L% O6 V( Z不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。( }" `, v# ]5 }% ~0 M* h! d0 {1 H
is
6 o: ^+ f, A- k$ P7 J4 ~ i,no,m:integer; --定义整型
w3 z* V3 t5 a- ]6 j$ x Buf:object; --定义object, N$ n Z; k6 f( |
do9 S$ }: k5 v/ `% I9 y
m:=0;
: i9 [# x. S3 T$ m9 `0 Z no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
. w- @& E+ m$ f3 B for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
3 g2 y) v" m! Z( r5 h; c if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
: f! g) _9 r( x3 v/ S5 U @._From:=PartsTable[5,i]; 2 S7 x- y- F4 t0 V4 \
@._To:=PartsTable[6,i];5 i& U& t$ h/ S6 Y2 |# l4 h, X
if no=PartsNo+PartsTable[2,i] then
* I- M+ K& \& @: M6 B. G) v# x$ B PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
: k, l' |" L u# W$ g0 X1 F7 K; P; m1 v0 r
end;! l, m# G0 H$ ]6 C% m" V
i:=PartsTable.YDim+1;6 R) `6 x3 F% y
end;$ p$ m6 H- M7 c% G: }/ B$ A
m:=m+PartsTable[2,i];
9 m( E6 j, i5 t6 Y4 ]: B next;
2 z+ c, K- k e2 c0 d9 V3 q+ l
4 X/ p7 P" M# \& b Buf:=str_to_obj(sprint("BF",@._From));* c7 J8 m. C5 C/ q6 Z6 q. m
@.move(Buf);
# H3 T: m! R' F& X- g2 {1 u& [end; |