这个例子昨天正好看了,话说那本书的例子都很不错~4 C6 O o. J+ c j* k6 w3 X' x- U0 z
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。# ]% B1 C- P7 k5 O
is0 `9 |: w( _, m% A
i,no,m:integer; --定义整型
5 e( e, I# f' w3 p, S9 L Buf:object; --定义object* \1 W+ ?% `( V0 I
do* s- D7 m. ?7 d0 W+ C5 `: o
m:=0;
5 ~' D- \. u* _3 j5 D# {4 J3 R no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)( D) ]/ i. \8 \
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
L; d7 s0 c2 \/ U2 p if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ; ~# ^) x& o( {8 w2 C- a
@._From:=PartsTable[5,i];
2 a6 a' u7 o0 `$ n3 d, V2 L g @._To:=PartsTable[6,i];
) x9 |! r ^ G: J$ u if no=PartsNo+PartsTable[2,i] then
( [, h8 P+ [+ u6 H! K5 ]9 } PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)- }3 h2 Y# S, _2 c
4 M% j! \0 ^5 c# Z' A+ C end;
n. | x0 M R1 G i:=PartsTable.YDim+1;
' V3 @& K" A3 {6 }/ l, @* m% A end;
1 Z3 X4 b4 ^0 @3 v3 y L2 ? m:=m+PartsTable[2,i];
3 w$ m! l: k+ F6 h# j next;8 x4 [* X" h( G% X# i* h
* ~4 h. D; m9 h6 q3 j
Buf:=str_to_obj(sprint("BF",@._From));% P0 n) \8 j& ]0 K. d2 {( m
@.move(Buf);
2 n! r( C/ f* z9 Q7 o. u8 _! wend; |