这个例子昨天正好看了,话说那本书的例子都很不错~1 t, L) Q, t, z( l
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
: a! c U: Q6 C0 M& Qis% x7 [6 M3 L6 m* X& k
i,no,m:integer; --定义整型
2 w. r+ t; K3 q0 K" k Buf:object; --定义object/ w1 ?0 n8 A, |
do# [, V" Q& L1 i
m:=0;$ \9 O6 O3 S( w. i* U# E
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* T5 |* j, O6 t- e6 A2 L9 m for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
: b% W" g5 ^7 _% L, y if PartsNo=m and no<=PartsNo+PartsTable[2,i] then . D5 G. @6 ~) K! h) C
@._From:=PartsTable[5,i];
& p3 S" h1 p6 @* u6 `( \- @ @._To:=PartsTable[6,i];$ ^/ }! A2 D" ?* I2 w8 V
if no=PartsNo+PartsTable[2,i] then
+ G: ]- {# y! O* ~9 B4 U- | PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)% U m% l \' T2 l/ L
0 D5 O% X- N2 D% ~, _5 d n& W" O end;% Q Z! V3 z: G1 n% Y3 e( p( ^* K
i:=PartsTable.YDim+1;/ q) w3 `) |$ t m+ e* c
end;
6 i/ B/ K- Y ?9 i m:=m+PartsTable[2,i];( H& T# Q* ]$ H9 G% L" r
next;
; M4 J0 y- z+ X% h 4 U8 {* ]( j1 L$ A7 Y
Buf:=str_to_obj(sprint("BF",@._From));
3 u x) u9 \; C8 j( G @.move(Buf);
3 S$ L, Q+ j+ h" Z/ `2 _% uend; |