这个例子昨天正好看了,话说那本书的例子都很不错~
. z+ `% W3 p( t' W6 t" I不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
6 Q, }& o4 G8 W% \) Yis
2 {- F% W/ i2 h9 o: } i,no,m:integer; --定义整型
! a. h! S3 X7 \, ~" v Buf:object; --定义object
. N% B* Q: r/ n( G5 ~! Hdo
, p* F- M" b& o8 h3 S. W: f, W1 o4 q m:=0;, m9 o- P* H- P; H! u3 D# ]1 M' T
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
+ y! d& x- o8 D0 R- r3 \ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行& r5 U3 S" k$ e: I
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then " U& g' w5 \* _( e' t
@._From:=PartsTable[5,i]; 8 c( }9 n- z( }7 T
@._To:=PartsTable[6,i];! _2 `! H6 {% r3 C4 G
if no=PartsNo+PartsTable[2,i] then " z, F' q! h0 p7 f& C! Y) } q9 @
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
# h8 v$ S8 Y8 b. L
f2 m( u* F& B6 F1 }& Y# c end;* b5 h5 X J9 B6 } @/ |. \! K: |
i:=PartsTable.YDim+1;
?# M( V2 y) U. Q- K6 } end;! ^9 _$ o- ]2 a* e1 p# V F
m:=m+PartsTable[2,i];# X, q6 P, ]& {8 I9 v' C
next;
; e3 o8 ~; P+ w9 t . T" `- `" Q' e6 [
Buf:=str_to_obj(sprint("BF",@._From));
' f* O+ t2 p; P @.move(Buf);
0 g9 ^' k+ l- Q! w9 j( q3 zend; |