这个例子昨天正好看了,话说那本书的例子都很不错~# M0 A4 V, ^6 a; c) p
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& x- l# Q& V' K" b! q$ w9 l& m. ?is
2 k0 T% N, x! }' ]# F i,no,m:integer; --定义整型' C; ?3 _. l9 M: {
Buf:object; --定义object
/ U' R' ~ B& ~+ A! c6 G, Udo8 R" f* Z1 `) V t% A4 I$ j8 h5 y
m:=0;
/ e l! a2 r; X5 j no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* X, n5 F8 g1 P1 c; X6 x( Y for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行, l, j _2 ?8 q3 Y8 E
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( W- O& |' H4 t6 {% v( H {' S t
@._From:=PartsTable[5,i];
6 J( y3 k, z& s1 N3 ]) ? @._To:=PartsTable[6,i];1 k& @% V6 X& _, c8 ~# { l
if no=PartsNo+PartsTable[2,i] then ) [2 H; | u$ m1 P+ n" k3 H
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去) z9 ~; S1 @) q$ }$ }
1 ]$ F# p+ C( S. C c5 a end;( R1 T7 {. ?7 H! f0 E+ t) o
i:=PartsTable.YDim+1;, h/ b* h8 Z* ]1 |; y# D3 a- ~
end;3 U4 t6 N' l8 m7 X, N
m:=m+PartsTable[2,i];0 P/ w3 X7 [+ V9 a6 n
next;9 l, X" j6 ?: F8 A7 h9 w1 [6 Z+ \
0 ?" s/ S6 \! r Buf:=str_to_obj(sprint("BF",@._From));, [$ }4 W1 D( g" t% }
@.move(Buf);
3 a K5 L8 B+ R$ gend; |