这个例子昨天正好看了,话说那本书的例子都很不错~
. D- M. q/ N" ^; P7 d不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. w/ T) p1 h# G0 S
is
9 u. H; w4 M Z" d z1 C8 G i,no,m:integer; --定义整型
# Y+ }1 A5 C% E1 ?# V4 c, g Buf:object; --定义object6 i5 h9 W. s+ I5 j2 f4 u
do z% ]' ^4 ~- S8 g z0 z! Y
m:=0;
2 C* ]1 @8 q6 {. E" z+ I" e% m# m, D% M no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) U: M9 P. _% A6 y( C
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行! v1 @2 Q/ y9 }3 @; K
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
. }+ x- A5 L7 V( E @._From:=PartsTable[5,i]; 8 b0 r: Q2 t% A& C6 t" c
@._To:=PartsTable[6,i];
# |+ V' ^! n4 A, A2 _ if no=PartsNo+PartsTable[2,i] then
9 j: y4 A/ J. w. p6 E PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 F5 ]% k9 x2 L4 i
4 @) W+ M. `2 u end;) R' x: V* S+ I: h
i:=PartsTable.YDim+1;
9 h6 L6 v: I8 c6 O B+ P) K end;5 M8 L" a! J! ]
m:=m+PartsTable[2,i];
$ q" R5 e) d% e) k) e- X% S& I, W% | next;
( `3 T1 e- @2 [$ _3 ~) e! y7 k: ` 1 F3 ]8 B6 {8 f9 P! Y8 l
Buf:=str_to_obj(sprint("BF",@._From));
$ g* ]7 f! t4 c, F1 a* h @.move(Buf);9 p1 a2 G, v" v) r1 ]4 ]& }; b
end; |