这个例子昨天正好看了,话说那本书的例子都很不错~
) L: `2 d# Y$ L. c) I不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。1 T/ c7 O f; o3 K# E
is8 A* O+ G# s# J2 ^( K# [, M
i,no,m:integer; --定义整型
3 p4 u9 V! ^( f9 A* B9 `5 v+ m8 a' L Buf:object; --定义object4 s1 A* o. W9 o5 G! F
do
1 O- P' r8 Y. A/ [( ^) `. ] m:=0;
! H+ u4 k# u( s no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)7 g) g2 {, J$ K3 I1 `5 V+ a6 \. o
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
7 \. D _* M" e! ]- s6 f if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 8 o2 h/ I+ H T' n+ g4 i, h' Q
@._From:=PartsTable[5,i];
$ ^2 t2 r+ A$ q& K- q* I- M6 v @._To:=PartsTable[6,i];
" F) i" r0 i& _$ @2 d4 E: r if no=PartsNo+PartsTable[2,i] then
) P( [4 Z5 o1 g PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
! Y% J! Y9 T9 O% g6 C) C z7 r6 V! {* n; C/ c
end;; j% h/ P: g# p- m3 [
i:=PartsTable.YDim+1;
* K$ \+ j6 i, v: j g4 @, Z end;' B) |( _; z z2 c" L
m:=m+PartsTable[2,i];. o0 E& Q { g3 Y; l
next;
# k' Z9 @+ N+ _8 _6 z
# f7 K& }* j# l7 w( p Buf:=str_to_obj(sprint("BF",@._From));% ~: C! |3 O5 L# ^6 V& h& v1 a
@.move(Buf);
3 Y2 S1 F( V: f8 X Bend; |