这个例子昨天正好看了,话说那本书的例子都很不错~- ]' W( K, |( \* y# M
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
( c' `/ z) _# w; V; T+ |is
/ V; u4 q- ]# L4 m7 L7 H i,no,m:integer; --定义整型1 \8 [4 A1 P. C+ K" a' Y4 k, q' }
Buf:object; --定义object$ v$ t$ Y" r0 q! T- r4 ]# W P; B
do; s- }* s$ U4 @; ^% ^8 j) `
m:=0;
; J; `! V4 k8 K! b" D! M no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
- p3 m( C& k0 Q6 r for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ n- z$ O7 D3 V" S4 A8 M; j6 {8 s7 I if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
' J4 L; E) n( R- P9 ^" U g @._From:=PartsTable[5,i]; 2 r& Z0 d4 s) T" U' L$ Q
@._To:=PartsTable[6,i];* z+ D9 u9 B9 Q* _& E6 A; }
if no=PartsNo+PartsTable[2,i] then
) Y; E4 ?1 ^5 Y' p+ ]1 o( ]$ A PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)3 X( `: n# u$ O7 n0 A
D; X; r# G6 W0 H2 S. v! C end;: M0 ?1 w2 C1 ?9 J' d
i:=PartsTable.YDim+1;
6 s# z1 A; m a; w D end;
" l* p5 ?6 y6 T, a* H, Z1 p/ v: }, S m:=m+PartsTable[2,i]; l7 J# K0 ?* Z* k0 k. s
next;) [* N0 M5 F* u4 z4 ~+ V3 ^3 \
/ N7 H2 }$ M6 D6 V
Buf:=str_to_obj(sprint("BF",@._From));
" x9 z6 C' F+ t' u2 b/ h! O @.move(Buf); S7 O6 H. t- G. _! s6 o D+ U
end; |