这个例子昨天正好看了,话说那本书的例子都很不错~
8 k4 A+ t; G g8 I+ r/ J6 i# `不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 I3 S( G. \$ R% T$ X! H7 z# Y! _" Bis- N4 w" V% X" G9 s
i,no,m:integer; --定义整型2 m+ ]' J& ]+ X. W) D7 e5 z$ C4 a3 `
Buf:object; --定义object, A, }( l/ C4 ^5 j! z4 l, D
do5 ~0 j9 O/ h7 \+ _' G6 f" Q8 T
m:=0;7 V. R5 D& v3 y7 n8 ^
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)0 H5 `0 d; I3 ~ D% y h
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
5 d( B) w, h+ R# A& Z2 m if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
{' C9 ^7 C" I! z9 \+ i @._From:=PartsTable[5,i]; 4 w! C+ ~% I, @" f
@._To:=PartsTable[6,i];; T( A5 i" P: e2 i
if no=PartsNo+PartsTable[2,i] then * u$ y4 j- o$ F6 s
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去), c% _& b) e6 C$ p
) Z$ g" P5 B" ^: c& a; L4 F- U) ~ end;2 S/ w4 M4 s) t
i:=PartsTable.YDim+1;6 @" l8 R. a$ d5 Y0 L
end;
6 |) X2 P4 V" O( s. ^) F, _3 L- P m:=m+PartsTable[2,i];
: g `7 x6 O. b# S next;, X4 K% v; k" A. e
+ M0 M% ~6 ^3 _% q
Buf:=str_to_obj(sprint("BF",@._From));
+ k2 x* Q) } ~" q- i) R7 I6 X @.move(Buf);$ C8 i$ ]9 S! U+ Q) a
end; |