这个例子昨天正好看了,话说那本书的例子都很不错~
: ?( U& M' n! I) [- U, H6 h不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。7 Y3 v* j8 Y& u& C4 H( g6 Z& c
is
8 ?7 Z3 m9 N Y: ~( H3 D+ u i,no,m:integer; --定义整型* s% y+ y. X) c4 `4 \ }- y: H
Buf:object; --定义object
& b) i8 N4 Z F! ~5 |& tdo3 P) g5 M# J! K
m:=0;
7 g' H* I& w( b: r9 |8 Q% s' v no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
; {% J8 r; M5 f& }* t) ] for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行0 g" D; f$ ~9 y! b
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then / w0 m- r/ F4 \
@._From:=PartsTable[5,i]; 4 S* B2 m+ O2 J5 [2 `; f
@._To:=PartsTable[6,i];/ q b& m \% `% X8 c0 S% I3 @- _
if no=PartsNo+PartsTable[2,i] then / A* O1 e5 d% `; J, G9 A1 z' J
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
9 {, R8 S* q* K* ~* S) V( U/ u! a8 f2 S7 }- {2 A
end;# d+ R- o5 E& r$ r B8 m' W, H
i:=PartsTable.YDim+1;
' a g( ^ X: C; r end;+ T2 L1 t' ~# g8 a! Y
m:=m+PartsTable[2,i];
& m& W( f- U2 J next;
d2 \# g3 Z- u, o# H( ?, d% Q 3 k: T# m- U- o' u
Buf:=str_to_obj(sprint("BF",@._From));: V! M$ j6 k9 ?/ |4 Y+ i
@.move(Buf);
6 @2 m4 v" w1 E4 [, J+ [& Pend; |