这个例子昨天正好看了,话说那本书的例子都很不错~
8 [* ~/ ?0 x1 i不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, R7 h" D" M/ E
is
% S) l8 Q# w% n5 a7 A& G u9 u8 ? i,no,m:integer; --定义整型
2 D! v& e, Q) h/ g Buf:object; --定义object
/ | y* U, n7 }2 w3 \! L# c! g3 G2 ~do
$ ^6 s5 r+ n2 o8 i# j9 I( w m:=0;
3 z3 U( P- H: }, v% C no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
" Y' Y8 q+ t) O( u for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
+ E0 }. \% Q; \% U; P3 l% _4 N, t if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! k! I4 } Y# ` @._From:=PartsTable[5,i];
/ R$ {* R, ]4 N1 ] @._To:=PartsTable[6,i];2 X# P; m& T+ M) R/ ?# _% F/ q
if no=PartsNo+PartsTable[2,i] then
3 H# p$ s6 O# {) t PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) x' v2 v% M' O' B& t4 h# s6 C& m, _ \
end;, A* Z. Z0 v: u! Z, H1 S( r
i:=PartsTable.YDim+1;. Z: Z2 R3 R+ Q% `7 \* G8 d
end;
0 L; @" t( K8 H m:=m+PartsTable[2,i];
6 ]6 J) R: x# n8 D next;
; S1 Y y+ h0 z$ Y& _, @ 7 |. t3 h' e! L1 C# G
Buf:=str_to_obj(sprint("BF",@._From));
/ @8 V: R: _1 Z: S6 H5 {8 O @.move(Buf);
+ y" n* y/ f1 ?5 q% c' t" Nend; |