这个例子昨天正好看了,话说那本书的例子都很不错~0 y9 R1 d! s }# y+ Q
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。$ S( `. q5 @ G9 ~2 ~; t
is
, ]4 D8 q# ]( K. n5 T i,no,m:integer; --定义整型( f/ x2 o2 U4 F7 x; v! ]; i
Buf:object; --定义object- Q5 j+ _) K# {) l0 g0 U0 E
do
9 o; s( c8 B1 j3 B! h m:=0;* g! a9 m! X' w1 _! r0 c
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)' \ ]! G3 B5 g4 F1 }4 z: Y
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
3 V7 D. U" c& G! e6 a' V, k if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
7 w" C" i a+ ~1 u @._From:=PartsTable[5,i]; 8 k7 O& O. b. ^, C
@._To:=PartsTable[6,i];
& U# l# d" c* N7 Y+ A" b if no=PartsNo+PartsTable[2,i] then
8 n8 |7 H o2 \3 l5 |$ R7 e PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)9 }* O% X( i+ p% H {
. ^8 i8 A4 }( l. T q+ Q2 ~" \. u! A6 i! Z end;
* l) o- T6 ]7 ]* J) P i:=PartsTable.YDim+1;6 O$ v4 m2 u: n$ L; J
end; p) m. t8 y. U, B) T: d
m:=m+PartsTable[2,i];
+ @( }& I" S4 V+ Z0 ~ next;3 i, d7 ]3 `0 R5 W: B4 m
2 V; c- |8 N3 i! j, L) @& K( |! f. V
Buf:=str_to_obj(sprint("BF",@._From));, z; L7 ~' m" A" H- f: F: [
@.move(Buf);8 E- _9 e6 B# p( }
end; |