这个例子昨天正好看了,话说那本书的例子都很不错~
* g: s6 e3 J2 \0 z" `1 ?) w2 G( B不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。; u/ \" L- L3 M, Y D' K: C
is
2 L- B) n" b) b* q. O+ J9 N* s i,no,m:integer; --定义整型/ x" B" P+ Y1 z0 M" |2 S
Buf:object; --定义object
2 s: p5 N d4 z& I! W9 {do# A% @4 c4 D. _* R
m:=0;
: s; H9 w; \; L. C) K no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
" E `6 m, w, h- S2 G4 m for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行7 n$ k9 D) x6 T4 i
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 2 C8 T+ }( j/ G" L( ] U
@._From:=PartsTable[5,i]; D; a7 R2 A* h+ ?: h; G2 I) D
@._To:=PartsTable[6,i];
, b- O' Q5 I# w1 L# k; ~5 z if no=PartsNo+PartsTable[2,i] then : m8 Y) N0 j8 c: l
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 B- |1 U. z- w7 p k( G q
% _9 U; ]6 }/ l4 o end;$ S1 R# `8 m- ^+ E
i:=PartsTable.YDim+1;, ~) D0 ~& f8 V- x4 M$ r' _6 M
end;
. j6 U6 V' b+ N# J m:=m+PartsTable[2,i];1 B8 w$ x3 _0 L/ [( A! L
next;
) t D1 d7 W0 m% K- R) A/ |. w : Y4 W9 h' X0 {7 f: ~/ T
Buf:=str_to_obj(sprint("BF",@._From));% I8 C) F: W! `; z" ` X
@.move(Buf);
- @; e7 ~0 a0 c S$ Pend; |