这个例子昨天正好看了,话说那本书的例子都很不错~
, Y. q N# G7 v$ R6 g9 m( n8 t不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
: Y( q: ~! V0 N1 E' b+ }+ Zis6 \) c$ p5 l7 n
i,no,m:integer; --定义整型, A$ ^: \2 P. F* R* x! h
Buf:object; --定义object
. \ C' s- E8 Q7 `& `' k% ido
% K7 e9 G! n4 k% E5 t m:=0;
, X8 Q3 \6 c$ ?# n$ _, N no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), V' G5 Y: b6 j* G
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行8 c4 J- K( Z4 J! N! }- j
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then . u9 A/ {# h6 N9 O
@._From:=PartsTable[5,i]; 8 ]! @! Q1 [# I8 |8 t! U& a% X
@._To:=PartsTable[6,i];' Z/ t6 i2 s9 |+ x
if no=PartsNo+PartsTable[2,i] then ) P' O- {! m2 p# w) f* k
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
- M- R8 x( W# b9 w+ Y
7 V9 W. G8 L% i0 k0 ^& m6 |0 m1 t end;# s" I2 S3 u3 U( o6 v/ X1 S1 n3 ~5 Y
i:=PartsTable.YDim+1;
+ K' m/ l/ Q! | end;* g- X, T l: p) Y) E
m:=m+PartsTable[2,i];9 E$ b- G) T% c9 p1 @0 j$ J
next;+ M, O; G, b# g J* Q
- Y. A. L- Z& w) c6 l Buf:=str_to_obj(sprint("BF",@._From));
. A4 K+ h3 o4 _* P2 B5 g @.move(Buf);- ~- }- ?4 H% m) x' D
end; |