这个例子昨天正好看了,话说那本书的例子都很不错~
9 B& O: F# |, T! b不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。. l. L F( f/ K1 u& m: g
is
% ]0 h0 `# ^! n9 } i,no,m:integer; --定义整型
4 }' B% A$ e3 Y% w C Buf:object; --定义object
& I( H1 i6 A. Q- L. mdo
$ A4 o# m3 g; h2 `5 f2 C m:=0;
) Q% x/ T/ A9 g) w. k! s1 S) Y no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外), }4 A3 `, d6 n$ ^/ _. J' ~2 b; m1 ?
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行3 s0 w) Q1 L9 G# Z! i/ b
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 1 D; h! }$ Q3 v) K0 C- t# q/ \$ r
@._From:=PartsTable[5,i]; 2 O& G7 J" g5 l, J7 ^3 l# e$ I
@._To:=PartsTable[6,i];
3 x4 x! h9 \/ r8 G: x$ N- Z if no=PartsNo+PartsTable[2,i] then
6 H, c0 ^; X( p' [( a8 W7 I PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)/ x" _* r2 o0 F& Z# G
: J: `( V% u" w! z" g
end;
% v$ B1 S3 y( v; U9 ~ u) M i:=PartsTable.YDim+1;0 w/ g; k) ~7 X! i8 Y
end; D; N- C, E: C% J
m:=m+PartsTable[2,i];
4 g' P n7 @6 c6 W. O next;$ ^! I9 {2 |, L( ]0 T" F
$ W5 M, E' m/ }. t1 h5 _- Y
Buf:=str_to_obj(sprint("BF",@._From));
0 l/ j+ v, e% Q7 q! T; n9 |$ z @.move(Buf);
2 O4 v% |5 h* A# yend; |