这个例子昨天正好看了,话说那本书的例子都很不错~
) Q8 ~6 \6 n" y3 [- g( X不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
$ F4 d8 Q, d7 `, \! B# u) `is
- O; u2 c) q F! ? i,no,m:integer; --定义整型5 q8 H8 {5 O$ k9 P& J8 E
Buf:object; --定义object7 L% E# R L5 l* d5 ]" C& J
do
3 v; \- z7 i' R0 d+ ` m:=0;
( v+ Q& v. i( i. n; ] no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
7 g0 S1 W, L0 J for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
, w5 W& \4 T/ \ M+ g" K( X if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
+ s( ]* y( Z( m8 [2 E4 B @._From:=PartsTable[5,i]; " R9 X! \: c: D/ B9 u
@._To:=PartsTable[6,i];& J' }- w" F% c5 v' C
if no=PartsNo+PartsTable[2,i] then
$ f$ Z' I& b; r x PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)* J; w" k! w. d! a0 {
5 {$ r' N$ v1 k4 j4 \+ u
end;& x; A& p. n- |& v# j
i:=PartsTable.YDim+1;
! \4 L1 Q9 d. h2 l+ E& R end;
& v+ K/ ~5 e/ u! P m:=m+PartsTable[2,i];
0 o1 ~: }& y$ w* p& P' Y next;. f8 o- C: v& f* ], t' E
8 _0 J: [+ u; v7 I: P
Buf:=str_to_obj(sprint("BF",@._From));# n, m) \! I5 m3 X
@.move(Buf);0 j# q6 R* N, v' ^7 E0 \1 r
end; |