这个例子昨天正好看了,话说那本书的例子都很不错~7 Z/ i8 e. `9 q& C
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
: i( s3 E: g- M% ris% A% E* G5 @# j" s3 L0 I
i,no,m:integer; --定义整型" D. U" }2 @! n0 q" c
Buf:object; --定义object- y; J b7 r8 P8 p
do
$ L8 A5 ~' L1 o& ?6 B- x$ y; ~; u m:=0;
, I2 ^, K: c: x" e0 E no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
" J" f$ c5 Y: _) d# l' T7 U& e for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行( U0 q9 W% Y4 d# C$ d; E
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
3 e: v2 t8 k9 {; b% J. S, d @._From:=PartsTable[5,i]; ; u$ g1 F( r( c$ L. H5 O x
@._To:=PartsTable[6,i];
0 Q) r0 H3 E" y if no=PartsNo+PartsTable[2,i] then # \+ i K7 [5 [; @. B2 K
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)' Q0 C* [5 t7 W7 j) d
5 S O2 g- u, q0 W2 O
end;
. X/ |/ C- k( S( p0 T; [, @# n6 C, c i:=PartsTable.YDim+1;
" t/ | b# e6 R: G6 w, }0 Q end;
. r3 c: Q; ` |: g: ~3 q+ U9 k m:=m+PartsTable[2,i];
! l- r0 o& G9 U+ T0 ?4 T( U% y. q next; g& m5 [1 R' b7 t7 F
6 `/ b3 v$ r N: c5 R
Buf:=str_to_obj(sprint("BF",@._From));
: O. S5 m# B: h+ w* x$ z4 i @.move(Buf);
0 U4 E6 G9 V' F/ g1 H/ ^6 dend; |