这个例子昨天正好看了,话说那本书的例子都很不错~$ Y& V7 p6 S2 P/ S& e( g
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
/ Q# g; |4 Q# Uis" |& b' ]3 l& y C- |) Y4 r
i,no,m:integer; --定义整型" G. p* a# V, l
Buf:object; --定义object7 y, T1 V# Y- N2 _, O3 G" U
do
+ x" V, A8 Y' y( y4 F! O% i# t m:=0;' b, a' @( T# p% Y; Z+ F8 H w% t. N
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)8 |$ z9 @/ ?! E4 \# Q. H
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行5 Z6 V8 J* _+ a! Q
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then / X% h" J7 u2 j$ @
@._From:=PartsTable[5,i]; * f$ N5 C: |. m! T8 c
@._To:=PartsTable[6,i];; A! s2 c7 z$ U: j
if no=PartsNo+PartsTable[2,i] then 5 G; F* a8 r2 O. E1 d
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
- h& E- o. _7 z: K9 z
" C+ Y" L; m7 ?/ S& B' f/ } end;# C* j. A0 m$ e3 S' y: L
i:=PartsTable.YDim+1;' D, a j* N* v7 f, A, Z3 b
end;5 ?9 ~% T$ q) g% X
m:=m+PartsTable[2,i];
7 J u1 L" @4 q6 B/ j next;
/ l( }! h0 E* r* t2 M: p( J U9 G6 Y
! D7 O4 ^0 G7 d V/ ? Buf:=str_to_obj(sprint("BF",@._From));
, Y9 `4 I5 M* v8 \* D @.move(Buf);
- S/ l9 H* O1 oend; |