这个例子昨天正好看了,话说那本书的例子都很不错~4 @/ B. S" U9 u1 ~8 j, c% G
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
+ Z9 `# H6 D6 K8 R5 x3 Kis
4 M6 Q/ ~ Z/ p: |, B i,no,m:integer; --定义整型
' {' o$ ^- r$ @9 U4 F1 C4 o" W Buf:object; --定义object' `) C1 l( f* j
do
" e8 y4 h3 Q4 l0 f4 h m:=0;- g6 ^! M7 t. K# b4 ^( r5 N
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)' O2 \! I6 L" r; G0 _
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
8 g) c3 a+ _1 F+ U if PartsNo=m and no<=PartsNo+PartsTable[2,i] then % i1 L2 J. y3 t+ k
@._From:=PartsTable[5,i];
3 X- h" D- B5 a4 f" t7 a @._To:=PartsTable[6,i];
& P( @ m6 s8 S6 H if no=PartsNo+PartsTable[2,i] then
9 j* f0 O' R% N1 a; s8 q PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)/ N1 F/ l, ^1 c( Y
. h* G3 K4 ~; P
end;8 q! ^( V- P' S$ H \1 M2 M6 e
i:=PartsTable.YDim+1;' ]$ x, e1 L, @6 M& w
end;; {5 H5 u+ Y0 [ U. j
m:=m+PartsTable[2,i];/ X" k2 ~6 N; Q* ]$ E2 b, s" u" Z0 I
next;1 C3 h+ W7 Z3 i
) x) u2 c* z* D& Q: } Buf:=str_to_obj(sprint("BF",@._From));7 D& L3 q( [, m
@.move(Buf);
2 @5 ]$ s+ [, |+ K* `: Fend; |