这个例子昨天正好看了,话说那本书的例子都很不错~3 D( i. _5 T# _7 A3 H
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。' e I1 A5 Y3 K5 |" F
is3 W- S% I+ X L5 S* `; e1 z
i,no,m:integer; --定义整型
1 Z" l1 D; k( P- V8 w8 ?* c: _! A Buf:object; --定义object
, B; l9 t- f/ g/ G, ^6 qdo
. f& k, |/ F8 V+ C. j: j m:=0;
8 d" p% [' c# ]& d, @$ q no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
8 H. D" i) }4 b. J# l for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, X9 T3 ]$ _* k if PartsNo=m and no<=PartsNo+PartsTable[2,i] then + G1 h% s! U) x* X E, L
@._From:=PartsTable[5,i];
% V k, X, `3 _- j @._To:=PartsTable[6,i];+ k' W- n; z) e0 b
if no=PartsNo+PartsTable[2,i] then : W: j& g; C3 v- }9 N, g' y
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
- y; h6 w0 z( w) C( o! S, F9 e" s& u
end;
/ I4 R8 Y! w6 p- W# r i:=PartsTable.YDim+1;; a) t, c M; u V8 @) e
end;
; [. q/ G, S3 |. b m:=m+PartsTable[2,i];
7 Y* c& c; f8 X next;: `, ^( D4 E9 [0 _0 f$ T
- p" L# R9 f) h
Buf:=str_to_obj(sprint("BF",@._From));
$ x z+ G( Z9 g P8 | @.move(Buf);
$ V* c% d; y4 V; l( V0 gend; |