这个例子昨天正好看了,话说那本书的例子都很不错~
2 Y. c0 q& |: H7 e: V不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
5 U; Q* [1 j+ f5 t. B9 Wis, Q N8 l6 Z1 P6 ~
i,no,m:integer; --定义整型" e' `7 O+ H2 Y7 Q4 n0 b9 s
Buf:object; --定义object% e2 D, g; n# |. m( C- m* e+ e
do
- K+ X( X2 L' O4 Y1 B0 R8 U7 ^ m:=0;2 s# ?/ v9 R* @8 Q
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& l' Y4 g4 `# O2 ?
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行- \) e2 |6 T5 Y8 _+ p* M9 \( d
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
! }0 c0 E$ f4 B4 G: V7 b @._From:=PartsTable[5,i]; 4 C! j3 x' U0 d6 x2 x
@._To:=PartsTable[6,i];& Z2 v g% h6 q, \1 T
if no=PartsNo+PartsTable[2,i] then ; c8 L5 b! H0 N$ B/ B- h8 Q9 }+ Y
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)" Y4 t7 E# {# e- T- k: ^3 g
' M% W6 j' j1 H k8 j' H end;* v- O- \, c( t
i:=PartsTable.YDim+1;4 L+ V# T% ~- C/ w1 d# [
end;
( f$ Y' ` c3 I, @+ n( O m:=m+PartsTable[2,i];, F* w9 O* X9 z% C% o6 F
next;& ~( G4 c) E6 V7 S' E
+ |% b$ I8 `( \% Q* R0 R: ^( p, y
Buf:=str_to_obj(sprint("BF",@._From));
( l9 D: E5 U+ g [, } @.move(Buf); P; r; D$ i. ]1 b; m
end; |