这个例子昨天正好看了,话说那本书的例子都很不错~( c5 Y5 O9 h. V1 \5 O
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。& ^5 U' c3 y5 U& Z* r# m( d8 W- L
is& P }" s& N w7 z3 h; y- E
i,no,m:integer; --定义整型
. _! R9 V( h8 c* D8 U5 ] Buf:object; --定义object, w+ T9 L) b% c; L; X% x# j2 L
do
' {$ O7 e& R' K5 B1 i0 A, O m:=0;
: o6 l3 g6 {2 f! T1 K- F no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
1 ^4 I0 o7 c, r+ w. B/ w2 s/ x( l for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行$ ?6 n; a2 N! c& M5 |) W N1 F- ]
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
3 f5 W+ x. s/ X) X, j0 C4 Y4 Q @._From:=PartsTable[5,i]; 6 ?; i* b4 O3 w' W' }9 N
@._To:=PartsTable[6,i];
) Q+ M2 Y/ L7 h1 r3 M if no=PartsNo+PartsTable[2,i] then
. m% N$ p2 i5 Q$ m' t8 C7 J PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
( t* n( h5 u$ Y1 `2 ~5 l5 e F0 l
end;
3 y* Y: j) s$ F) k5 Y0 o9 _" a' C i:=PartsTable.YDim+1;
: D) q' {8 v2 s. t L end;
f! {; b7 M+ O* |1 O4 j. ?! A m:=m+PartsTable[2,i];0 ~+ U/ M1 N" }9 N( m+ |$ U- L
next;
/ D. G G. v6 ]
2 ]) I$ O% G# a) r U h' o Buf:=str_to_obj(sprint("BF",@._From));8 {$ M* e8 C/ F! x l1 R% T1 _, d
@.move(Buf);* G5 m8 S1 u9 C; y6 Q
end; |