这个例子昨天正好看了,话说那本书的例子都很不错~0 Y7 X9 Y1 N: q6 O/ K3 N" F" C- k
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
# [4 E, Q1 R( G" r, K2 ~* I* w% g) ris$ F& F1 p: A/ G3 ]4 r! C
i,no,m:integer; --定义整型1 s/ j, Q2 D. q& E0 E7 B4 c- a4 O
Buf:object; --定义object( t. i) E- D( }# Y6 W8 F
do
4 Z5 D5 K" H' E) n0 A0 q m:=0;1 ~( S. G( B# a4 @" `# s' m t
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)/ j& e( s( G8 g _) }9 S
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
& v4 E# \+ j5 N* K7 A7 N if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
* s1 K, H9 G" M& Y! V @._From:=PartsTable[5,i]; " K7 L* i7 N0 }8 }) }+ s/ B
@._To:=PartsTable[6,i];$ j# Z( I. P+ s! T: b
if no=PartsNo+PartsTable[2,i] then # p% n8 d0 i9 [; b, Q/ ^* ?0 V
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)5 J( `# T5 n, X" M' T. R( _
; D7 g* J& K0 |, d/ |
end;/ O. O/ v/ E0 F+ F) r
i:=PartsTable.YDim+1;) B) l1 Y) M5 D; Q t( J* b
end;
z8 v. s$ s( r3 b0 A: \; c8 L m:=m+PartsTable[2,i];" U n: a9 G2 v- s
next;3 b6 _3 X9 K$ k1 B- M2 Z$ o
g ~ v6 l% c1 H; @ Buf:=str_to_obj(sprint("BF",@._From));
. d4 h9 o; e# E: S @.move(Buf);8 q( Y* h! ~% |+ V, w, c) K
end; |