这个例子昨天正好看了,话说那本书的例子都很不错~8 b" ]8 L1 k# v! d& z0 {
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, p w6 p' P4 Pis
4 B% W' B* ]* A i,no,m:integer; --定义整型6 z `2 d- y$ z7 G, {8 g- m
Buf:object; --定义object
* F- A2 y( l! ?) B j% \ [do
o$ D( q( t! A; O# a m:=0;2 {% }% C8 N6 f! L9 e
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 _2 [0 {! {- i) Q+ H
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% Q3 Y( z5 Y3 F% [& k. O if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
) L x9 F3 X5 _ @._From:=PartsTable[5,i];
" Y" f% L: W' Q& p$ | @._To:=PartsTable[6,i];' H! w$ p- x% f) Q# G
if no=PartsNo+PartsTable[2,i] then ) H/ r8 i' S1 V
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
* T0 z" V. h, |1 E/ k7 ^2 e9 U& G& _
end;- @8 }* h2 ?; L" k
i:=PartsTable.YDim+1;. b5 |1 Z8 }( R* O4 `6 L9 O0 ]
end;
' i9 \2 U# i% B: | m:=m+PartsTable[2,i];
" f: w l* K; z; K: d next;
6 C: f# R' Q2 {! n" f
3 q9 D( g1 c: }1 G) x3 c Buf:=str_to_obj(sprint("BF",@._From));
1 [4 U& `$ J. V8 ?$ ?3 F @.move(Buf);
5 Z6 q, i; W) }! l- M, E" k2 \. Hend; |