这个例子昨天正好看了,话说那本书的例子都很不错~
7 H; q/ l8 Z2 @- D: X# e; A7 g0 j不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。: ^3 |: q: m( X0 a! e5 }
is5 Q* g* Q" h0 \. ~) @$ C9 B
i,no,m:integer; --定义整型
2 }0 K* q. X* C6 C Buf:object; --定义object/ u. Y M P3 S
do
0 l8 o9 _3 X* K" ?7 i! o: H m:=0;
7 V6 [' \3 X2 T- @ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
* z6 W& P0 s+ M for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行9 [9 w: c; O( J" x# J
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
9 ^" @' T n# E6 I7 V- ` @._From:=PartsTable[5,i];
! h5 b: y& T1 Y/ ?2 ]* T @._To:=PartsTable[6,i]; H6 w+ f1 _8 T' c; v
if no=PartsNo+PartsTable[2,i] then % q2 e/ |5 i% ^1 X! }9 G/ k4 u
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)5 W2 w$ e* U# K5 C& w- `7 M
/ f3 [8 f7 Z) d: e
end;: c( F! o! h9 R/ B- \" u% F
i:=PartsTable.YDim+1;
1 Z0 y# z5 n$ z) B: p end;
' s( X6 k$ i$ U, _0 Z m:=m+PartsTable[2,i];0 H5 O, w& l/ M S, K
next;! q" _5 i& D- X5 {! F
4 P7 \0 `/ |7 a1 b) v, W3 P5 a Buf:=str_to_obj(sprint("BF",@._From));
1 @/ i/ W. o/ q/ y* M, E5 c4 j @.move(Buf);
" g6 b9 d r: ~2 X$ g( M% A; U0 r$ cend; |