这个例子昨天正好看了,话说那本书的例子都很不错~ k2 [4 J( [+ W! p4 n$ P
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。' L0 s: K: X! i8 q9 y
is
* V/ S$ k, S, X- h/ b* Z i,no,m:integer; --定义整型) ~7 T# {3 D+ Y4 v- j% n
Buf:object; --定义object- m* ?2 Q: h; G4 [' w4 j4 \5 e
do. @! i8 m, @8 J2 H8 E- C
m:=0;
3 E" g. `) B' p: n8 p; \# n# l7 y no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
) V8 q3 d( w/ l1 o D$ z for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
" G" h3 R6 v& S if PartsNo=m and no<=PartsNo+PartsTable[2,i] then : W, m4 x5 T8 j5 x5 Z
@._From:=PartsTable[5,i];
; ]2 m; N4 W6 ?* k6 }" q8 q# f @._To:=PartsTable[6,i];$ X) S6 S& m% m4 f1 @# _& B1 a: L
if no=PartsNo+PartsTable[2,i] then & t& f$ Z" j8 }* {6 Q- J, m! p
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
7 _9 A$ |% m6 m8 _" X/ [4 ?+ q! f/ e% c k: C ~$ {, @
end;. M! m1 ~5 u" x& Y, Y, i# v# B: d
i:=PartsTable.YDim+1;9 i; C9 i1 p7 k
end;5 S. G9 z/ l5 v" H8 Z$ [
m:=m+PartsTable[2,i];& H5 j9 ]- ^* i# d# U1 x: o3 P1 z
next;
/ X' B1 }6 K4 l 7 S- [# S/ X6 g) A
Buf:=str_to_obj(sprint("BF",@._From));; ^0 c7 K/ ~/ I9 V
@.move(Buf);1 ^( |+ z' {1 k* I* M; `( ^! Z
end; |