这个例子昨天正好看了,话说那本书的例子都很不错~
: x$ A8 q4 Q5 @& |& E不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 m/ V+ m- t1 j7 A: ois; l6 Y) g1 P# w# Z$ C
i,no,m:integer; --定义整型
r8 r+ w1 N7 _* M- B' l Buf:object; --定义object8 b. a( E" `9 r5 p/ A" N
do
( m! X! k+ ^' G m:=0;: F1 F) t4 o) `& a
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
% |5 V" x q3 Y% j# ~% b for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行% f* e. q3 i/ m' l! r
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ; h9 _ e/ c3 s" t+ `$ p& |7 z
@._From:=PartsTable[5,i]; ) A6 ]- {0 O8 n
@._To:=PartsTable[6,i];
% r+ @- L1 h& O& B& V; x if no=PartsNo+PartsTable[2,i] then $ r+ y5 M1 x8 m. s" n
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
! }- X8 _( @- v! M+ s# O6 F4 Z$ `6 ^6 v, B+ R
end;1 R$ k- V) f' }1 {( y! z$ u; ?: |
i:=PartsTable.YDim+1;
, A8 ?* Z3 |7 u3 p% O$ [3 r end;
! @: d" |8 g' B6 Q m:=m+PartsTable[2,i];0 h! A; I5 S* Z3 X4 b' z- S
next;( d+ G9 a! b z4 Q6 O
* w) s$ ]3 \4 p' a Buf:=str_to_obj(sprint("BF",@._From));' O$ j9 h, Z6 t. ]
@.move(Buf);
5 _+ @8 w- t: u# E" }/ hend; |