这个例子昨天正好看了,话说那本书的例子都很不错~
/ e% a# s- l6 y1 u; K, m% S I# ]7 G不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 _* I0 N N3 K P. |, |0 Wis, ?% E6 w# {6 Z! {$ M
i,no,m:integer; --定义整型
, M) m0 R0 M2 o Buf:object; --定义object5 s2 [$ Z- V' {/ m9 J
do
# l2 f# b* G: i+ d3 Q m:=0;4 P0 Q5 Z3 S# A4 z2 ]* Z$ _& `
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)1 b2 K- A1 q( J; i% Q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行& V% P( L/ \* p/ `
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ' [$ I' I1 K0 r9 c" A8 P6 {& K
@._From:=PartsTable[5,i]; . @3 x1 b4 s8 u+ z4 }# z
@._To:=PartsTable[6,i]; x' A! L8 G( u# l+ f! a
if no=PartsNo+PartsTable[2,i] then
) _: U; X& |9 x! x* N$ b PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去): r: N( Z$ A* K9 J0 c
8 o/ j, O' U/ q6 K
end;
0 q. P+ @& [. {, o' [ i:=PartsTable.YDim+1;
( a' H0 J. G1 k( D5 I, I+ B- X end;
+ g m8 K+ A9 k m:=m+PartsTable[2,i];, l' Z, C" B4 G( O
next;
/ W0 Z. d2 ~3 o: O* v+ l
" C$ p, W' r- Z" u$ ~ Buf:=str_to_obj(sprint("BF",@._From));
2 K4 Q* ]& E3 ]$ s/ R! ? @.move(Buf);0 r( `7 w. k7 W( R# O2 A1 c
end; |