这个例子昨天正好看了,话说那本书的例子都很不错~% J. M% l4 W4 }
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。# R. W' V( g! j
is
4 y% D# Z9 d) g" f; L% P i,no,m:integer; --定义整型& n1 s6 x) e0 n# L" W7 K
Buf:object; --定义object7 Y; o+ g5 Y8 i% t) e3 P3 z( h
do. b2 I$ c1 ^+ Q, m
m:=0;* [5 ]3 f0 K" y, s
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)* @6 f. f+ ]9 l: D! q6 z
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
* W4 p( ~1 _, F/ q/ Q" D if PartsNo=m and no<=PartsNo+PartsTable[2,i] then % x3 B% x! W( Z5 H/ V, e
@._From:=PartsTable[5,i];
; C, z0 G( V; d$ ] @._To:=PartsTable[6,i];* M; z8 M3 a- u, z
if no=PartsNo+PartsTable[2,i] then
( N L. l, K' D1 |7 q* }( Q; u( v PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)' I4 L% i8 |% ]; Y9 c* w; ?. Q
1 e" u% ^& f; X' M/ I1 s end;" \3 W3 n& m5 v% Z+ F9 t; n
i:=PartsTable.YDim+1;
% V( Z, @9 |% Z+ h- } end;
; n$ t$ Q: j1 ^" t" o4 s m:=m+PartsTable[2,i];
8 u t$ I- [6 F; C4 U next;
$ M5 _/ B/ z" [2 r) `- y : i& P4 C+ O) g( @0 n
Buf:=str_to_obj(sprint("BF",@._From));7 Q6 O+ f# v" x
@.move(Buf);% a. p, _4 Q) ]5 G' _0 k
end; |