这个例子昨天正好看了,话说那本书的例子都很不错~, u. A( P/ J4 @! ` [* [% A
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. T1 n; |+ M, d7 E* H8 ]6 u/ r! s
is3 J7 U/ p1 z: \# G
i,no,m:integer; --定义整型5 n: c% P/ \) _! f( k1 d
Buf:object; --定义object/ x) X2 R |3 x; z' {7 _+ g/ z: N
do
, R3 U5 b# b& d# \) b m:=0;# [. ?3 B6 @ K; A1 k3 _
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 r3 Q1 j+ n3 N! P
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
* J* ^" @0 E1 Q9 } if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
: l. v8 z! G# b1 j- z' T6 Y3 l1 q @._From:=PartsTable[5,i]; 6 F. d' F1 W4 S. l
@._To:=PartsTable[6,i];. G5 }9 N7 M' B0 {
if no=PartsNo+PartsTable[2,i] then ! i6 {0 s, q( `2 t- l& F8 x5 m
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)+ f" i& |' `, ?7 |1 J& [
S$ x! i- N$ W* H( Y* l
end;
/ y0 g' V2 e. T/ y( r$ f: b2 C i:=PartsTable.YDim+1;
3 a( }* o- e& c N$ v2 i, y0 k end;; ^ V6 ?7 e6 \0 ~8 C
m:=m+PartsTable[2,i];
- y6 R i/ G, r P6 F next;; q0 U8 z- }5 |; K$ O) O9 ]7 b
2 D( ?' Y { R0 R8 I% c3 ]
Buf:=str_to_obj(sprint("BF",@._From));) }* V2 E [. [. f, m$ W
@.move(Buf);
3 \ e) Y( r! y3 b( P& Wend; |