这个例子昨天正好看了,话说那本书的例子都很不错~
# @) B# t5 ?1 a不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
* V3 O& ~$ \/ | mis5 `, j( `/ E- N, v# T
i,no,m:integer; --定义整型
u% w" H- V$ w, G$ J' T Buf:object; --定义object5 |+ ^5 R5 t* B- O1 Y
do
4 Y2 s* |7 n, U Q7 A5 p m:=0;
5 J4 p$ n. A, x) v( q* B no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)3 G1 w! M' M( T( p( N' L
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行; W0 q h# h% L5 }! Z- C( H
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 0 |# q7 D4 F0 }3 x: A$ P1 {
@._From:=PartsTable[5,i];
! Q8 t( Y3 B. w: h; y# c @._To:=PartsTable[6,i];
9 o- X2 ]( o5 {% C9 T2 A if no=PartsNo+PartsTable[2,i] then ; @$ R5 s! B6 i* V
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
- p' {, p& |' i% g5 n' K* |# n
1 t: G: ]& z; O% i; G0 q end;) e! S0 ?$ \/ y4 }% t$ q
i:=PartsTable.YDim+1;
# z7 g2 J) M3 T+ r end;) A" O- j/ i4 B. m8 T2 f" k
m:=m+PartsTable[2,i];, a, u2 [9 D+ a: ] B
next;0 }5 n$ D- Y% }1 W; |
/ q# d: C7 U9 g) S* S: _
Buf:=str_to_obj(sprint("BF",@._From));4 i8 Q% E( o4 b7 V( w7 T
@.move(Buf);" k: s$ p, g5 B) _
end; |