这个例子昨天正好看了,话说那本书的例子都很不错~3 c z7 p, ]3 S9 a# |
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
( A# k8 v2 E& W& L% Wis
$ F* g5 ~2 B8 t. T i,no,m:integer; --定义整型4 n& ]2 u; h, q4 M
Buf:object; --定义object, C f6 ^+ H/ G0 J* Y; ?$ R$ `
do
. s& Q) g) ]/ F* Q7 ] m:=0;
1 n9 G/ t9 r; ^ no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
2 T) G7 s, O& ]2 Y6 m for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行! V8 U# ^! Q# l8 J
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then # C2 C: r( {9 J
@._From:=PartsTable[5,i];
7 k/ g: r5 p8 | @._To:=PartsTable[6,i];
2 w1 A* G- }3 P) x; a if no=PartsNo+PartsTable[2,i] then ' M& Z5 j% `0 M# s1 [9 S) J4 f0 _
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去); s% _! I4 h0 {9 F! Z% w
! {) J" p/ q8 x- Z2 o9 x, h, F5 s end;$ y9 J, {: G' F% C
i:=PartsTable.YDim+1;
! M% }( _3 M# i7 O# f# p9 p Z end;3 q9 N3 Z; w( J, ]1 G* X" Y
m:=m+PartsTable[2,i];6 N( u M. t2 ?
next;; f: u7 i* U! x: u8 b* T: E
+ d2 r/ R0 I5 Y! Q% e
Buf:=str_to_obj(sprint("BF",@._From));
: x6 l* {% i7 a% D9 G0 S @.move(Buf);
~0 p1 k7 h c5 w% w5 W% R7 Q: gend; |