这个例子昨天正好看了,话说那本书的例子都很不错~8 V$ O6 @7 ?9 O+ S1 n: W. m
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. z; P/ N( T4 T" [is
1 @6 `9 q* f9 P/ N; l) A7 i$ c2 m i,no,m:integer; --定义整型
, n5 W# I/ C7 M" I$ ]" _! Z Buf:object; --定义object
5 b9 z9 A. M- z: L% tdo
2 f/ E% }9 c; l6 C) r4 B H m:=0; L# W+ k. N0 _
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)$ v' E& i! }% Q$ [; f, P4 O
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ ]( e9 C% Y6 z2 L u* T& N ^+ P
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
4 g; K# ~6 X% N/ S( x$ t9 \ @._From:=PartsTable[5,i];
* G0 `* ~1 w U9 E! i0 J1 u A$ L @._To:=PartsTable[6,i];
. Z2 g7 _3 v5 I" d4 \0 J if no=PartsNo+PartsTable[2,i] then ; e6 w/ R* F5 C8 w4 d
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)) n x2 u9 b1 [' j6 Z! V( I
+ X; O8 G2 _/ `4 A+ ?
end;
8 x( a% Z8 { U0 ?. Y6 p i:=PartsTable.YDim+1;
, P& _" F' S+ w* B! x9 O6 n end;2 y% j# q6 t) X; O5 p) D6 k
m:=m+PartsTable[2,i];
5 i/ k( l) r4 h9 \ next;0 n' |# |5 N. f) A) c. b# e' u
0 K( S* {6 z9 Q, q; ]5 T5 A Buf:=str_to_obj(sprint("BF",@._From));5 g0 Z, A( {1 |4 k0 H/ J3 S, N
@.move(Buf);) p: ?8 o# Z; _5 q4 X( x: w
end; |