这个例子昨天正好看了,话说那本书的例子都很不错~
& D4 V* `, l7 `不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
( Y& A0 j! \% mis' A) W" O3 i0 e
i,no,m:integer; --定义整型
+ S# |+ }, e( D; v Buf:object; --定义object5 e0 m; ^" ~. x+ @- E' ]4 [
do6 |0 n1 D& ^, x, G/ H% d! z9 n8 \8 s
m:=0;
1 M! b! V& u( n. k no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)+ g; s& Y% N$ ?( \
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行! u1 k7 \& b6 P* a0 V/ Q
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then z% g* B2 G5 \. L: W! [; a
@._From:=PartsTable[5,i]; " S" a. b7 L) Y& y! e
@._To:=PartsTable[6,i];
1 y/ i& E! s, {5 ]' \$ n if no=PartsNo+PartsTable[2,i] then
1 q3 j2 e/ e$ O+ M6 x5 i PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ H8 z) O+ H9 T+ q' F, b$ N! ~$ G. \. _/ [1 N0 I& q, N
end;" i- g' i$ a. N& E7 p* i. K
i:=PartsTable.YDim+1;
/ |& S$ C/ A% R4 l! b1 S' f# G& t end;5 ^3 X* o: }' ]+ ~9 S- j/ l/ D
m:=m+PartsTable[2,i]; U' ^% t) F7 ~$ d0 U5 y7 L
next;2 C; G) T* \* e4 Y: B4 ?
& o$ W1 [& x7 e) t2 y3 F4 a Buf:=str_to_obj(sprint("BF",@._From));
( ]) \ m+ R1 f9 S @.move(Buf);
C% ?4 x0 {" [* i$ q* mend; |