这个例子昨天正好看了,话说那本书的例子都很不错~
* r+ J. n, b6 Z% V v, V1 p不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。 K2 }/ {$ r5 a" ~! ~$ m k
is
) E* U, q/ {% X7 E' F+ i/ k i,no,m:integer; --定义整型
& a+ r& u4 l7 a$ B+ I( C Buf:object; --定义object' L( F- _8 U: v) h! }
do% e+ `% `: ~" b& z
m:=0;
H( a) m* f: z) [& h5 n no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 L4 a$ @4 w1 h, o3 n# X for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行( }! i8 R& v5 a2 S0 D8 T6 V' G5 K
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
m# d- [3 G* B" M* M4 g2 ^8 j @._From:=PartsTable[5,i];
% b. d7 {' X; p' O @._To:=PartsTable[6,i];; K, M2 F+ ?& W5 [! d" `1 ?
if no=PartsNo+PartsTable[2,i] then 8 J6 [% ~- A$ N: X
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
6 ^% F0 |% a" K) [2 }7 _0 E7 d9 p) F* K) c3 h/ z+ t& r; N/ b* i; {
end;, ?9 g9 d; b4 c( z& R1 ]
i:=PartsTable.YDim+1;
L D: q' A1 q0 A end;1 F9 @4 P) } c/ ?
m:=m+PartsTable[2,i];$ p0 s8 b/ K% y) Q; R9 y* Z
next; q& R$ Y: [9 r1 `+ c$ V
9 e A `4 S. u Buf:=str_to_obj(sprint("BF",@._From));
; @" I" z6 V# ~ @.move(Buf);5 J% N$ \4 |* [$ l; h$ @- S( j
end; |