这个例子昨天正好看了,话说那本书的例子都很不错~
, Z. g# }9 u) a# ?! c不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
. U) t) |, L1 q/ w2 ~is
3 D2 p1 ~5 A, m3 Q" R9 n$ D: ?, l i,no,m:integer; --定义整型
; f' @$ g- D2 L8 [ Buf:object; --定义object+ _$ y- O+ k y8 W+ [, _
do
* j8 J6 h5 X/ R8 R( \ m:=0;
1 b) [- U. E, D, b7 N no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
v e# g { o: U, S s. \/ [4 ~ for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行( I9 X) }" b3 w+ L# O
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then : J: l& a; d! M6 a* Z% O$ Z! K
@._From:=PartsTable[5,i];
; E( y7 O0 n \; \0 } @._To:=PartsTable[6,i];
3 D8 ~! n7 ^, ^4 Q( W if no=PartsNo+PartsTable[2,i] then # b$ p. `. I5 x @
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)0 R) j2 g3 X% {: G% f9 h0 h
7 F& K2 g2 k" c h+ M
end;
' \4 T1 x, p" {# l i:=PartsTable.YDim+1;6 ~' l0 H: n& W. P4 G
end;
- a& T' J4 c( J5 C F m:=m+PartsTable[2,i];
. _! C) B' a2 A+ v/ o0 [+ b next;. R) ~9 m! `6 B8 d( M0 F
* k8 b& ?: P7 }0 }) e6 Q
Buf:=str_to_obj(sprint("BF",@._From));
! \1 \4 e/ w! e: t9 G: U2 d% t @.move(Buf);# X1 F0 d8 h* J- K; S( p; I
end; |